我使用grep通过var
中包含的文件搜索模式代码在这里:
result=`grep "$pattern" $file`
echo $result
结果: A)某些词B)somelines C)somenumbers
在1行打印结果。我想结果一行
像:
A) somewords
B) somelines
C) somenumbers
我该怎么办?
由于
答案 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"
附加说明:使用$(...)
代替反引号可提高可读性,并且更便于使用。