我正在尝试在文件的每一行末尾添加一个与号,如下sed
所示:
sed -i -e 's/$/ &/' file
但是,当我查看文件内容时(使用 Vim 和直接cat
输入文件),我没有看到 & 符号(只有一个额外的空格)。我尝试使用另一个字符“l”,成功了。为什么使用 & 符号时不起作用?
答案1
&
是 sed 命令替换端的少数特殊字符之一s/pattern/replacement/
- 具体来说,它被模式空间的整个匹配部分替换。在这种情况下,整个匹配部分是零长度断言$
,因此&
似乎在替换中没有插入任何内容。
因此,要添加文字“&”符号,您需要对其进行转义:
sed -i -e 's/$/ \&/' file