百姓新闻  >   科技  >  正文

linux shell编程-逐行处理文本文件

前言

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

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。这里在提取数据的时候要特别注意。

linux shell编程-逐行处理文本文件

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

a=0

while read line

do

echo $line

let a=a+1

done < /tmp/text.txt

echo $a

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

linux shell编程-逐行处理文本文件

使用awk进行处理

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

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

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

标签
  • 数据
  • 每行
  • 标准输入
  • 变量
  • 命令

今日热点

特别推荐

小编精选

热点排行

相关推荐
热门推荐

注:凡本网注明来源非百姓新闻的作品,均转载自其它媒体,并不代表本网赞同其观点和对其真实性负责。

百姓新闻致力于资讯传播,希望建立合作关系。若有任何不当请联系我们QQ:729448868 邮箱:sccopyright@qq.com 将会在24小时内删除。

sccopyright.org All Right Reserve 版权所有 蜀ICP备12001456号-1