尝试使用 sed 在文件的每一行末尾添加一个 & 符号

尝试使用 sed 在文件的每一行末尾添加一个 & 符号

我正在尝试在文件的每一行末尾添加一个与号,如下sed所示:

sed -i -e 's/$/ &/' file

但是,当我查看文件内容时(使用 Vim 和直接cat输入文件),我没有看到 & 符号(只有一个额外的空格)。我尝试使用另一个字符“l”,成功了。为什么使用 & 符号时不起作用?

答案1

&是 sed 命令替换端的少数特殊字符之一s/pattern/replacement/- 具体来说,它被模式空间的整个匹配部分替换。在这种情况下,整个匹配部分是零长度断言$,因此&似乎在替换中没有插入任何内容。

因此,要添加文字“&”符号,您需要对其进行转义:

sed -i -e 's/$/ \&/' file

相关内容