美文网首页
如何在Shell脚本中逐行读取文件

如何在Shell脚本中逐行读取文件

作者: 老率的IT私房菜 | 来源:发表于2021-07-13 20:21 被阅读0次

在这里,我们学习Shell脚本中的3种方法来逐行读取文件。

方法一、使用输入重定向

逐行读取文件的最简单方法是在while循环中使用输入重定向。

为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面:

[root@localhost ~]# cat mycontent.txt

This is a sample file

We are going through contents

line by line

to understand

创建一个名为“ example1.sh”的脚本,该脚本使用输入重定向和循环:

[root@localhost ~]# cat example1.sh

#!/bin/bash

while read rows

do

  echo "Line contents are : $rows "

done < mycontent.txt

运行结果:

如何工作的:

- 开始while循环,并在变量“rows”中保存每一行的内容

- 使用echo显示输出内容,$rows变量为文本文件中的每行内容

- 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容

Tips:可以将上面的脚本缩减为一行命令,如下:

[root@localhost ~]# while read rows; do echo "Line contents are : $rows"; done < mycontent.txt

方法二、使用cat命令和管道符

第二种方法是使用cat命令和管道符|,然后使用管道符将其输出作为输入传送到while循环。

创建脚本文件“ example2.sh”,其内容为:

[root@localhost ~]# cat example2.sh

#!/bin/bash

cat mycontent.txt | while read rows

do

  echo "Line contents are : $rows "

done

运行结果:

如何工作的:

- 使用管道将cat命令的输出作为输入发送到while循环。

- |管道符将cat输出的内容保存在"$rows"变量中。

- 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容

Tips:可以将上面的脚本缩减为一行命令,如下:

[root@localhost ~]# cat mycontent.txt |while read rows;do echo "Line contents are : $rows";done

方法三、使用传入的文件名作为参数

第三种方法将通过添加$1参数,执行脚本时,在脚本后面追加文本文件名称。

创建一个名为“ example3.sh”的脚本文件,如下所示:

[root@localhost ~]# cat example3.sh

#!/bin/bash

while read rows

do

  echo "Line contents are : $rows "

done < $1

运行结果:

如何工作的:

- 开始while循环,并在变量“rows”中保存每一行的内容

- 使用echo显示输出内容,$rows变量为文本文件中的每行内容

- 使用输入重定向<从命令行参数$1读取文件内容

方法四、使用awk命令

通过使用awk命令,只需要一行命令就可以逐行读取文件内容。

创建一个名为“ example4.sh”的脚本文件,如下所示:

[root@localhost ~]# cat example4.sh

#!/bin/bash

cat mycontent.txt |awk '{print "Line contents are: "$0}'

运行结果:

总结

本文介绍了如何使用shell脚本逐行读取文件内容,通过单独读取行,可以帮助搜索文件中的字符串。

相关文章

  • 如何在Shell脚本中逐行读取文件

    在这里,我们学习Shell[https://www.linuxcool.com/]脚本[https://www.l...

  • 【shell】脚本读取输入重定向(<)文件

    shell脚本使用<来重定向输入,如,< filename.txt 将文件重定向到标准输入,如何在脚本中读取文件内...

  • Mac 微信双开~

    创建shell脚本 创建一个文件 后缀名为 .sh如: ???shell脚本 在文件中添加终端命令 nohup /...

  • 23. 编写第一个 Shell 脚本

    [TOC] 什么是 Shell 脚本 一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件...

  • 如何在Java中逐行读取文件

    本文翻译自How to read a file line by line in Java[https://atta...

  • 02 - shell脚本设计与运行

    什么是shell脚本 提前将可执行的命令语句写入一个文件 顺序执行 解释器逐行解释代码 常见的脚本语言 shell...

  • Shell (四)

    shell 中的特殊字符 执行的例子: 代码块和重定向读取文件 使用管道管理脚本输入 编辑脚本 运行结果:

  • bash下逐行读取一个文件

    在 Linux 或类 UNIX 系统下如何使用 KSH 或 BASH shell 逐行读取一个文件? 在 Linu...

  • shell脚本:1_shell脚本基础

    shell脚本,就是将一系列命令写在一个文档中,然后让shell从该文件读取命令,就像从终端读取一样。 1 基本知...

  • 2021-09-08

    shell脚本处理文本信息 逐行读取信息 截取行列字符串cut -b:以字节为单位进行分割 -d:按列进行分割 -...

网友评论

      本文标题:如何在Shell脚本中逐行读取文件

      本文链接:https://www.haomeiwen.com/subject/lowspltx.html