【发布时间】:2018-03-23 18:56:24
【问题描述】:
$ cat testfile
first line mark apple
second line not banana
third line mark pear
我想循环文件的每一行。如果它包含mark,则显示整行而不丢失空间。
但是如果我的代码如下,它会将空格变成返回:
for i in `cat testfile | grep mark`; do
echo $i
done
输出是
first
line
mark
apple
third
line
mark
pear
如果使用 printf
for i in `cat testfile | grep mark`; do
printf $i
done
输出是
firstlinemarkapplethirdlinemarkpear
我怎样才能得到如下输出:
first line mark apple
third line mark pear
【问题讨论】:
-
grep 标记测试文件
-
我正要建议
for i in "$(grep mark testfile)" ; do echo "$i" ; done,但它会将$i设置为grep命令的整个多行输出,而不是逐行迭代。