sed命令用/字符替换字符串

时间:2019-02-27 21:36:39

标签: sed

我正在尝试使用name=src.命令将xml文件中的name=Web/替换为sed

sed -i 's/name=src\./name=WebUi\//g' coverage.xml

但是它给出了一个错误。

任何人都可以在sed命令中提供一个想法吗?

2 个答案:

答案 0 :(得分:0)

使用:

sed 's/name=src/name=Web/g' filename.txt

答案 1 :(得分:0)

/作为文本的一部分出现时,无论是在正则表达式中还是在正则表达式中,都以/表示法使用s///以外的字符(我选择了|,但是您可以使用未出现在正则表达式或替换中的任何字符;控制字符(例如 Control-A 通常是有效且安全的):

sed command sed -i 's|name=src\.|name=WebUi/|g' coverage.xml

请注意,这样编写的-i选项仅适用于GNU sed;如果使用BSD或macOS sed,则需要-i ''-i.bak的使用与这两者相同,但是会保留应删除的备份文件。

当我看到有人用破损的sed脚本进行就地变更时,我总是很担心。在确信脚本可以工作之前,您不应该考虑使用-i选项。


经过审查,我很惊讶原来的's/name=src\./name=WebUi\//g'无法正常工作-斜杠前的反斜杠应该是正确的。