三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Shell逐行读取文件的5种方法

Shell逐行读取文件的5种方法

逐行读取文件方法一:while循环+read命令

使用while循环结合read命令是最常见的逐行读取方式。read命令会从标准输入或文件描述符中读取一行数据,直到遇到换行符为止。

function while_read_line_bottm(){ while read LINE do echo $LINE done < $FILENAME }

逐行读取文件方法二:cat命令+管道

通过cat命令输出文件内容,再通过管道传递给while循环逐行处理。这种方法简洁但会创建子shell,可能影响变量作用域。

function while_read_line(){ cat $FILENAME | while read LINE do echo $LINE done }

逐行读取文件方法三:使用文件描述符

通过文件描述符直接操作文件,避免管道带来的子shell问题,适合需要修改父shell变量的场景。

function while_read_line_fd(){ exec 3<&0 exec 0<$FILENAME while read LINE do echo $LINE done exec 0<&<3 }

逐行读取文件方法四:awk命令处理

awk本身是逐行处理文本的工具,适合需要同时进行字段提取或复杂处理的场景。

awk '{print $0}' "filename.txt"

$0表示整行内容,可通过$1$2等访问特定字段。

逐行读取文件方法五:for 循环

function for_in_file(){ for i in `cat $FILENAME` do echo $i done }
← 返回列表