我使用创建一个文件nano file.txt
。我输入了Hello
回车键,然后输入,mate
因此输入文件如下所示:
Hello
mate
如何替换此文件中的换行符,\\n
以便稍后在构建有效的 json 数据时替换此值,即预期输出为:
{"output":"Hello\\nmate"}
现在这是我的 bash 脚本
#!/bin/bash
expected_output=$(<file.txt)
expected_output=${expected_output//\\/\\\\}
JSON_FMT='{"output":"%s"}'
printf "%s" "$expected_output" >> aaa.txt
该文件aaa.txt
正在由不同的编程语言读取,我在其中解码 json。
如果您的输入如下所示:
并且您想要替换除最后一个之外的所有换行符(假设它是有效的 POSIX 文本文件),那么
\\n
您可以使用任何 awk 执行以下操作:当OP说他们的输入看起来像这样时的原始答案:
使用任何 sed:
jq
使用类似生成 JSON 的工具。它已经知道需要转义什么以及如何转义。标志
-sR
导致整个输入被读取为单个字符串,而不是多个 JSON 对象。过滤器创建一个对象"output"
作为键,整个输入作为值。