Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 用双反斜杠n(\\n)替换换行符(\n)_Json_Linux_Bash_Ubuntu - Fatal编程技术网

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

Json 用双反斜杠n(\\n)替换换行符(\n),json,linux,bash,ubuntu,Json,Linux,Bash,Ubuntu,我需要发送一个以换行符作为JSON参数的字符串\n导致错误,需要编码为\\n 如何将linux中纯bash脚本中的\n替换为\\n?使用参数扩展: line='\n' line=${line/\\n/\\\\n} 使用引号可能更具可读性: r=${line/'\n'/'\\n'} 如果要替换所有引用,请将第一个斜杠加倍: r=${line//'\n'/'\\n'} # ^^ 如果要将(新行)替换为\n,请尝试以下操作: sed ':a;N;$!ba;s/\n/\\n/g' 例

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


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

使用参数扩展:

line='\n'
line=${line/\\n/\\\\n}
使用引号可能更具可读性:

r=${line/'\n'/'\\n'}
如果要替换所有引用,请将第一个斜杠加倍:

r=${line//'\n'/'\\n'}
#       ^^
如果要将(新行)替换为\n,请尝试以下操作:

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


这将
n
替换为
\n
。需要更多的反斜杠。@Wintermute:我的错。Fixed.OP可能希望替换所有事件。因此,最好使用
line=${line/\\n/\\\\n}
同样的方法,将
${foo/$'\n'/'\\n'}
用于文字换行,而不是
\n
。从这个问题上我不能完全确定OP想要哪一个。但如果我们还没有做到,我们就可以做到,所以1up。一个json条目示例将非常有用。是\n原始字符串还是换行符?
$ echo -e "a\nb\nc" | sed ':a;N;$!ba;s/\n/\\n/g'
a\nb\nc