【Shell】按行读取文件内容
方法1:while循环中执行效率最高,最常用的方法。
function while_read_LINE_bottm(){ While read LINE do echo $LINE done < $FILENAME }
#!/bin/bash while read line do echo $line done < filename(待读取的文件)
注释:习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。
方法2 : 重定向法;管道法: cat $FILENAME | while read LINE
Function While_read_LINE(){ cat $FILENAME | while read LINE do echo $LINE done }
#!/bin/bash cat filename(待读取的文件) | while read line do echo $line done
注意这边如果是运行sh脚本的时候 头部要改成sh
我只所有把这种方式叫做管道法,相比大家应该可以看出来了吧。当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。
方法3: 文件描述符法
Function while_read_line_fd(){ Exec 3<&0 Exec 0<$FILENAME While read LINE Do Echo $LINE Exec 0<&<3 }
这种方法分2步骤,第一,通过将所有内容重定向到文件描述符3来关闭文件描述符0.为此我们用了语法Exec 3<&0 。第二部将输入文件放送到文件描述符0,即标准输入。
方法4 : for 循环
for line in `cat filename(待读取的文件)` do echo $line done
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作