知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linuxshell读文件按行处理

发布时间:2015-02-02 18:27:35作者:知识屋

一种方式是用 cat和反引号

ps:反引号在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。

输入格式如下:

20151207 617899182468@qq.com
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=0for line in `cat data.txt`do  IFS=$' '  for value in $line   do   count=$[$count+1]    echo $value     done#echo $linedone

 

一种是用管道或者重定向

 

' | '表示管道连接,在linux中管道就是一个特殊的文件描述符。

管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。
有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。

 

# second examplecat data.txt |  while read linedo for var in $line do   echo $var donedone 


 

						
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜