我需要发送一个以换行符作为JSON参数的字符串。 \n
会导致错误,需要编码为\\n
。
如何在linux中的纯bash脚本中将\n
替换为\\n
?
答案 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