Linux sed 中的&

 

一次使用sed 替换操作,替换后的字符串包含 &,替换文本如下

$ cat test.txt
key=hello &

替换命令

$ sed 's/^key=.*$/key=world & /' test.txt

结果

key=world key=hello &

sed 中 s 指令语法: ‘s/regexp/replacement/flags

& 符号是代表 regexp 匹配的全部。所以又将原有匹配内容打印了一遍, 可以通过增加 \,将&按照普通字符处理

$ sed  's/^key=.*$/key=world \& /' test.txt
key=world &

也可以使用 c 命令, 他之后的所有字符都被认为文本处理

$ sed  '/^key=.*$/ckey=world & ' test.txt
key=world &

参考及引用

更加详细使用 https://www.gnu.org/software/sed/manual/sed.html#Programming-Commands

https://www.grymoire.com/Unix/Sed.html

Guide to Sed Command: Text Editing in Linux

图片from 机滄泳

Comments are closed.