[英]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.