sed命令帮助以正斜杠

时间:2018-07-25 22:09:03

标签: sed

我有这样的html行

  <name> abc </name>
  <name> test </name>

基本上任何字符串都可以在<name></name>之间,我必须将其替换为单词file : XYZ

所以我尝试了

 sed -i 's/<name>.*<\//name>/<name>file:XYZ<\//name>/g' filename

,但是在第一个反斜杠上引发错误unexpected char: '\'。正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果将“ /”替换为“#”,则无需转义“ /”。如下修改您的命令,

sed 's#<name>.*</name>#<name>file:XYZ</name>#g' filename

我建议您尝试以下命令,

sed 's#\(<name>\).*\(</name>\)#\1file:XYZ\2#g' filename

\1\2是指相应的匹配\(<name>\)\(</name>\)。在添加-i之前,请确保输出是所需的。