linux shell 读文件按行处理
一种方式是用 cat和反引号
ps:反引号在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。
输入格式如下:
20151207 617899182468@qq
20151225 155581558905678
如下
内部字段分隔符(Internal Field Separator, IFS)是shell脚本中的一个重要概念。IFS是存储定界符的环境变量。它是当前shell环境使用的默认定界字符串,例: data=”name, sex, rollno, location” #我们可以使用IFS读取变量中的每一个条目 oldIFS=$IFS IFS=”,” for item in $data do echo Item: $item done IFS=$oldIFS
count=0 for line in `cat data.txt` do IFS=$' ' for value in $line do count=$[$count+1] echo $value done #echo $line done
一种是用管道或者重定向
‘ | ‘表示管道连接,在linux中管道就是一个特殊的文件描述符。
管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。
有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。
# second example cat data.txt | while read line do for var in $line do echo $var done done
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。