在 Bash 中读取文件行

Fumbani Banda 2023年1月30日 2022年5月14日
  1. 在 Bash 中使用 read 命令逐行读取文件
  2. 在 Bash 中使用 IFS-r 选项逐行读取文件
在 Bash 中读取文件行

本教程使用 read 命令在 bash 脚本中逐行读取文件。

这是我们将使用的文本文件的内容。

 john\n ,
james\n ,
joe,
jack,
jill

在 Bash 中使用 read 命令逐行读取文件

names.txt 文件被重定向到 while 循环。read 命令处理文件中的每一行并将其分配给 p 变量,echo 命令显示它。一旦处理完所有行,while 循环就会停止。read 命令会忽略前导空格,这在某些情况下可能会产生误导。

printf "Names\n"
while read p;
do
    echo "$p"
done <names.txt

输出:

Names
johnn ,
jamesn ,
joe,
jack,
jill

在 Bash 中使用 IFS-r 选项逐行读取文件

默认情况下,read 命令会删除所有前导空格并将反斜杠解释为转义字符。我们添加 -r 选项以禁用反斜杠转义,并禁用修剪空格,以便清除内部字段分隔符(IFS)。

printf "Names\n"
while IFS= read -r line; do
    printf '%s\n' "$line"
done < names.txt

输出:

Names
 john\n ,
james\n ,
joe,
jack,
jill
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相关文章 - Bash File