用双反斜杠替换换行符(\ n)n(\\ n)

时间:2015-04-28 16:56:26

标签: json linux bash ubuntu

我需要发送一个以换行符作为JSON参数的字符串。 \n会导致错误,需要编码为\\n

如何在linux中的纯bash脚本中将\n替换为\\n

2 个答案:

答案 0 :(得分:3)

使用参数扩展:

line='\n'
line=${line/\\n/\\\\n}

使用引号可能更具可读性:

r=${line/'\n'/'\\n'}

如果要替换所有匹配项,请将第一个斜杠加倍:

r=${line//'\n'/'\\n'}
#       ^^

答案 1 :(得分:-2)

如果你想用\ n替换\ n(新行),请试试这个:

sed ':a;N;$!ba;s/\n/\\n/g'

例如:

$ echo -e "a\nb\nc" | sed ':a;N;$!ba;s/\n/\\n/g'
a\nb\nc