我有这样的html行
<name> abc </name>
<name> test </name>
基本上任何字符串都可以在<name>
和</name>
之间,我必须将其替换为单词file : XYZ
所以我尝试了
sed -i 's/<name>.*<\//name>/<name>file:XYZ<\//name>/g' filename
,但是在第一个反斜杠上引发错误unexpected char: '\'
。正确的方法是什么?
答案 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
之前,请确保输出是所需的。