欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux-在shell中一行行的遍历文件内容 有大用

linux-在shell中一行行的遍历文件内容

linux运维菜

18-08-1200:06

前言

在Linux shell编程中,我们经常需要以行为处理单位进行数据处理。

使用while read处理

read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中。read每次读取一行的数据然后就传递给变量进行处理。

1、利用管道输入到read中

a=0

cat /tmp/text.txt | while read line

do

echo $line

let a=a+1

done

echo $a

注意:这里可以看到a输出的还是0,因为给a加1的操作是在管道之后,变量a不会从管理里面返回,因此a最后输出还是0。这里在提取数据的时候要特别注意。

2、利用重定向输入到read中

a=0

while read line

do

echo $line

let a=a+1

done < /tmp/text.txt

echo $a

注意:这里的a输出的就是行数了,因为这里处理的时候没有经过管道,而是重定向到标准输入,给read处理,所以这里的变量a是可以被处理的。

使用awk进行处理

利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据。

cat /tmp/text.txt | awk '{print $0}' #$0可以输出整行的数据

总结

shell虽然方便,但是一旦出现bug,不好查找。


来自  https://baijiahao.baidu.com/s?id=1608519290281423904&wfr=spider&for=pc


普通分类: