bash - 如何替换变量中的换行符?

时间:2016-07-28 13:27:18

标签: linux string bash replace

这是我的剧本:

ItemsControl

我想用my_var="foo bar baz" echo ${my_var//\n/\\n} 替换所有换行符。

然而,这就是我所拥有的:

\\n

我错过了什么?

2 个答案:

答案 0 :(得分:7)

我认为这样做符合你的要求:

$ echo "${my_var//$'\n'/\\n}"
foo\nbar\nbaz

有两点需要注意:

  1. 引用你的变量!你的扩展没有进行任何替换,但变量中的空格由于分词而被压扁。 echo打印由单个空格分隔的每个参数。
  2. 使用$'\n'作为C风格的字符串,以在扩展的搜索部分中获取换行符。

答案 1 :(得分:1)

这有效:

$ echo "${my_var//      
/\\n}"
foo\nbar\nbaz

相关发现:要在命令中的任何位置插入文字换行符而不运行它,可以按 Ctrl-v Ctrl-Enter