试图打印" \ n"在bash与sed

时间:2015-09-24 02:48:59

标签: bash shell unix sed

有一些问题,有sed插入双字符序列 \ n 。 (我使用bash来创建一些期望的脚本)。我在替换模式中尝试的任何内容最终都是一个实际的换行符。

我试过了:

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

纯代码,单引号

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

Shell解释,双引号

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