shell 迭代尾部输出

fxnxkyjh  于 2023-02-09  发布在  Shell
关注(0)|答案(1)|浏览(119)

我正在从一个文件中添加行尾。我需要迭代输出来做一些处理。
文件内容:

abcd abcd abcd
abcd abcd
abcd abcd
xyz xyz
lmno xvz
pqrs uvw xyz

下面是我使用的片段。

file=extract.txt
for line in $(tail -n 2 ${file})
do
  echo $line
done

我期望的输出如下所示

lmno xvz
pqrs uvw xyz

我所看到的是这样的,不知何故白色被当作换行符打印在单行中的每个单词。感谢任何帮助。我需要迭代通过实际行做一些处理。

lmno
xvz
pqrs
uvw
xyz
r1zhe5dt

r1zhe5dt1#

使用管道,而不是for

tail -n 2 "$file" | while read -r line
do
    printf "%s\n" "$line"
done

别忘了给变量加上引号,这样就不会出现意想不到的单词拆分和通配符扩展。

相关问题