如何修改grep输出:获取每一行的每个结果

时间:2014-04-11 12:02:26

标签: bash grep output

我使用grep通过var

中包含的文件搜索模式

代码在这里:

result=`grep "$pattern" $file`
echo $result

结果:     A)某些词B)somelines C)somenumbers

在1行打印结果。我想结果一行

像:

A) somewords
B) somelines
C) somenumbers

我该怎么办?

由于

1 个答案:

答案 0 :(得分:2)

只需引用您的$result变量,即可保留换行符:

result=$(grep "$pattern" $file)
echo "$result"

这样做的原因是当你用bash中的双引号括起来时,这些引号中的所有内容都被视为一个单词。这意味着它不会受word splitting的约束。另见:http://mywiki.wooledge.org/WordSplitting

有效地,当您使用$result时,它会扩展到此(因为换行符被视为分隔符):

echo A) somewords B) somelines C) somenumbers

当您使用"$result"并避免单词拆分时,它会扩展为:

echo "A) somewords
B) somelines
C) somenumbers"

附加说明:使用$(...)代替反引号可提高可读性,并且更便于使用。