使用 SED 命令替换包含斜杠的字符串



我正在尝试使用以下代码将字符串/IRM/I替换为E/IRM/I,但正在处理文件,没有错误,也没有转换。我假设我错误地使用了取消字符以允许正斜杠。任何帮助都非常感谢。

sed -i '//IRM/IE/IRM/I/g'

sed命令需要指定一个操作(如要替换的s(,并且该操作需要一个符号。你不需要使用斜杠作为那个符号。

printf '%sn' 'This is a test: </IRM/I>' | 
sed -e 's@/IRM/I@E/IRM/I@g'

。正确发出作为输出:

This is a test: <E/IRM/I>

请注意,我们在sed表达式的开头添加了一个s,并在后面加上了一个@- 一个不包含在源或替换字符串中的任何位置的符号,因此您不需要像/那样对其进行转义。

最新更新