如何遍历每行包含 * 的文件中的行

Fan*_*oos 0 shell bash shell-script

我有一个包含大约 800 行的文件。所有行都包含 1 * 个字符。

我需要遍历文件中的行,所以我使用了以下简单的 for 循环

for i in $(cat file_path); do echo $i; done
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有奏效。

当我尝试使用其他文件但文件中的行不包含 * 字符时,循环工作正常。

我该如何解决这个问题?

cuo*_*glm 5

您的代码有一些问题:

您可以使用while循环修复它们:

while IFS= read -r line <&3; do
  { printf '%s\n' "$line"; } 3<&-
done 3< file

[ -z "$line" ] || printf %s "$line"
Run Code Online (Sandbox Code Playgroud)

请注意,在 POSIX shell中使用 while 循环处理文本文件被认为是不好的做法