我想将grep结果赋给变量以供进一步使用:
lines=`cat abc.txt | grep "hello"`
Run Code Online (Sandbox Code Playgroud)
但我发现$ lines不再包含换行符.所以,当我这样做
echo $lines
Run Code Online (Sandbox Code Playgroud)
只打印一行.我如何保留换行符,所以当我回显$行时,它与cat abc.txt |相同 grep"你好".
Sea*_*ean 42
你想说
echo "$lines"
Run Code Online (Sandbox Code Playgroud)
代替
echo $lines
Run Code Online (Sandbox Code Playgroud)
详细说明:
echo $lines表示"通过替换$lines名为变量的内容来形成一个新命令lines,将其拆分为空格,以形成零个或多个echo命令的新参数.例如:
lines='1 2 3'
echo $lines # equivalent to "echo 1 2 3"
lines='1 2 3'
echo $lines # also equivalent to "echo 1 2 3"
lines="1
2
3"
echo $lines # also equivalent to "echo 1 2 3"
Run Code Online (Sandbox Code Playgroud)
所有这些示例都是等效的,因为shell忽略了存储在变量中的各个单词之间的特定类型的空格lines.实际上,更确切地说,shell将特殊IFS(内部字段分隔符)变量的字符上的变量内容拆分为默认(至少在我的bash版本上)为三个字符的空格,制表符和换行符.
echo "$lines"另一方面,意味着从变量的确切值形成一个新的参数lines.
有关更多详细信息,请参阅bash手册页的"扩展"和"单词拆分"部分.
| 归档时间: |
|
| 查看次数: |
14568 次 |
| 最近记录: |