sed正在替换整行而不仅仅是字符串
我只想用零替换文件中的几个字符串,但是sed替换了整行。有人能帮我吗 file.xml中的行:sed正在替换整行而不仅仅是字符串,sed,Sed,我只想用零替换文件中的几个字符串,但是sed替换了整行。有人能帮我吗 file.xml中的行: <tag>sample text1 text2</tag> 我也试过了 sed -i -e "s/'text1 text2'//" file.xml 2>/dev/null || : 预期结果: <tag>sample</tag> 其他: text1 and text 2 are complex text with .=- characte
<tag>sample text1 text2</tag>
我也试过了
sed -i -e "s/'text1 text2'//" file.xml 2>/dev/null || :
预期结果:
<tag>sample</tag>
其他:
text1 and text 2 are complex text with .=- characters in it
我能做些什么来解决这个问题
TIA删除单引号:
sed "s/text1 text2//" file.xml
你可以用
sed 's/\([^ ]*\)[^<]*\(.*\)/\1\2/' filename
sed的/\([^]*\)[^正则表达式与您给我们看的行不匹配,因此肯定有其他问题。请发布一个。我建议使用XML/HTML解析器(xmlstarlet,xmllint…)。它仍然会删除令人费解的行。它对我有效。$sed“s/text1 text2/”txt.xml-->sample可能是因为我有一个与实际不符的示例!如果text1和text2中有字符-&=?例如text1实际上是-text=1,text2实际上是-text=2?那么我需要将-text=1-text=2替换为零
sed "s/text1 text2//" file.xml
sed 's/\([^ ]*\)[^<]*\(.*\)/\1\2/' filename
<tag>sample</tag>