我正在寻找一种方法,将 bash 变量中的多行字符串转换为单行字符串,其中每个\n字符都转义为\n文字。
例如:
str="
Hello
World
"
Run Code Online (Sandbox Code Playgroud)
我需要这个才能成为Hello\nWorld。我浏览了 SO 和 Unix StackExchange 上的问题,但我还没有找到可以实现我需要的命令。
Bash 有两种内置方法来引用适合重新摄取的值。这些不仅可以处理换行符,还可以处理制表符、引号和反斜杠:
\n\xe2\x9d\xaf echo "${str@Q}"\n$'\\nHello\\nWorld\\n'\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x9d\xaf printf '%q\\n' "$str"\n$'\\nHello\\nWorld\\n'\nRun Code Online (Sandbox Code Playgroud)\n或者,如果您只想替换换行符而不做其他事情,您可以使用${var//search/replace}语法来进行替换:
\xe2\x9d\xaf echo "${str//$'\\n'/\\\\n}"\n\\nHello\\nWorld\\n\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4233 次 |
| 最近记录: |