繁体   English   中英

尝试使用 sed 在 bash 中打印“\\n”

[英]Trying to print "\n" in bash with sed

在 sed 插入两个字符的序列\\ n 时遇到一些问题。 (我正在使用 bash 创建一些期望脚本)。 我在替换模式中尝试的任何内容最终都会成为实际的换行符。

我试过了:

sed s/<string>/'\\\\n'/
sed s/<string>/\\\\n/
sed s/<string>/\\n/

几乎任何有意义或没有意义的排列。

我需要它与安装在 Mac 上的 bash 和 sed 一起使用。

sed s/<string>/'\\\\n'/适用于我的 Lunix (GNU) 和 OS X (bsd) 版本的sed

$ echo aXb | sed s/X/'\\n'/
a\nb

sed s/<string>/\\\\\\\\n/也可以。 当 bash 看到\\\\ (引号之外)时,它会将其视为单个转义反斜杠,因此\\实际上传递给命令。 当它看到\\\\\\\\n ,它只是两个转义的反斜杠,后跟“n”,因此它将\\\\n传递给命令。 然后,当sed看到\\\\n ,它也会将其视为转义反斜杠后跟“n”,因此替换字符串最终为\\n 由于“n”总是任何完成的转义序列之后,它只是被视为替换字符串中的另一个字符。

纯代码,单引号

sed 's/Pattern/\\n/' YourFile

Shell 解释,双引号

sed "s/Pattern/\\\\n/" YourFile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM