我在标准输出中有一个简单的 URL 文本。部分 URL 如下所示。
https://somedomain./xx?t=s&u=random other text
我希望使用 sed 或命令行中的其他内容来更改此设置
https://somedomain./xx?t=l&u=random other text
我用过sed -e 's/s&/l&/'
我没有替换s&
为而是进入了字符串。我的命令有问题吗?l&
ls&
答案1
s
您必须通过在命令右侧添加“\”来转义命令右侧的“&”字符。如果没有它,“&”是特殊的,会被正则表达式匹配的内容替换。在左侧,“&”不是特殊的,并且保证是非特殊的。你不想逃避它,因为 while&
永远不会是特殊的,\&
也不能保证是特殊的,并且它匹配的内容是未指定的。
所以:
sed -i 's/s&/l\&/g' file.txt