我想用新行替换逗号并将其分配给变量。在这种情况下 tr 的结果完成了这项工作:
$echo "a,b" | tr ',' '\n'
a
b
Run Code Online (Sandbox Code Playgroud)
但是,使用相同的命令并将其分配给变量会将新行更改为空格:
$ x=$(echo "a,b" | tr ',' '\n')
$ echo $x
a b
Run Code Online (Sandbox Code Playgroud)
如何使其工作,以便在最终结果中存在未转换为空格的新行?
您应该将变量放在双引号内作为参数,echo并且可以使用-eecho 选项来启用转义序列的解释(许多情况下的默认行为)。
x=$(echo "a,b" | tr ',' '\n')
echo -e "$x"
Run Code Online (Sandbox Code Playgroud)
但是你有更优雅的方法来做同样的事情,考虑如下参数扩展:
var="a,b"
echo -e "${var/,/\\n}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |