1.软文推荐

2.软文推荐

3.软文推荐

本篇文章重点为大家讲解一下Shell脚本逐行处理文本文件具体方法,有需要的小伙伴可以参考一下。

经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:

1.通过read命令完成.

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量,用 IFS(内部字段分隔符)变量中的字符作为分隔符。VariableName (变量名)参数指定给每一个字段的值,由 VariableName (变量名)参数指定的以此类推,直到最后一个字段。

read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.

利用read读取文件时,每次调用read命令都会读取文件中的”一行”文本.

当文件没有可读的行时,read命令将以非零状态退出.

cat data.dat | while read line
do
echo "File:${line}"
done

while read line
do
echo "File:${line}"
done 
2.使用awk命令完成

awk是一种优良的文本处理工具,提供了极其强大的功能.

语法格式:awk [选项] ‘指令’ 操作文件

常用选项:-F 指定分隔符,分隔符用””引起来

-v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快

-f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序 利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据.

cat data.dat | awk '{print $0}'

cat data.dat | awk 'for(i=2;i

第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据.

如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便.

3.使用for var in file 命令完成

for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定.

for line in $(cat data.dat)
do
echo "File:${line}"
done

for line in `cat data.dat`
do
echo "File:${line}"
done

如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.

如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.

可以通过把IFS设置为换行符来达到逐行读取的功能.

IFS的默认值为:空白(包括:空格,制表符,换行符).

本文来源:www.lxlinux.net/9230.html,若引用不当,请联系修改。

相关文章 8

1

关于voxility高防vps的信息 2分钟前

目录:...

2

SELinux策略规则的开启和关闭 4分钟前

在一般情况下,所有的规则并不是都处于开启状态,我们不用学习怎样修改规则的具体内容,只需要知道开启和关闭的规则就可以。 规则的...

5

国产操作系统自主可控需要长期技术沉淀 7分钟前

近日消息,操作系统作为信息产业之魂,不论从信息安全角度还是从产业发展的角度,都需要掌握在自己的手中。近日,新浪科技对话统信...

6

Linux 上通过 WineZGUI 运行 Windows 应用和游戏 10分钟前

WineZGUI 是俱乐部的新人。如果你正在寻找一种在 Linux 桌面上使用 Wine 运行 Windows 应用和游戏的更简单方法,WineZGUI 可能是一个不错的选择。...

7

Linux常用命令—dpkg-query命令 11分钟前

Linux常用命令 dpkg-query 是Debian Linux中软件包的查询工具,它从dpkg软件包数据库中查询并辨识软件包的信息,下面良许教程网为大家分享一下...

8

韩国vps批发近30天搜索趋势(哪里有韩国vps) 13分钟前

目录:1、日本vps和韩国vps哪个延迟2、哪款海外 VPS 性价比高3、国外VPS云服务器选择攻略心得分享4、韩国VPS租用优势与缺陷是啥?5、韩国...