sed命令删除模式为“&gt; <! - ”和“/ - >”的行

时间:2013-10-09 12:58:51

标签: sed

我正在尝试使用sed命令删除模式"></""/>"

的文件中的行
sed -i '/\/>/d' $1       --> Works fine
sed -i '/>/</\//d' $1    --> Error=>   sed: -e expression #1, char 4: unknown command: `<'

有人可以为第二个推荐一个解决方案吗?

如果我可以在一个sed命令中组合两个模式检查?

5 个答案:

答案 0 :(得分:2)

要删除包含您可以执行的模式的行:

$ grep -ve '></' -e '/>' file
1
2
3

或者只删除模式:

$ sed -r 's%(></)|(/>)%%g' file
1
 and 
2

3
foo  bar

输入文件为:

$ cat file
1
></ and />
2
></
3
foo /> bar

答案 1 :(得分:0)

尝试以下方法:

sed -i '#></|/>#d' $1

您应该考虑使用与/不同的分隔符,例如在搜索模式中有#/

答案 2 :(得分:0)

最后,让它运作起来。代码如下。 sed -i'//&gt; / d'$ 1 sed -i'/&gt;&lt; // d'$ 1 谢谢大家。

答案 3 :(得分:0)

你可以尝试一下吗?我发现他工作正常

sed -i '/><\//d';/\/>/d' $1

它会删除包含><//>的所有行。

答案 4 :(得分:0)

这可能对您有用:

sed -i -e '\#></#d' -e '\#/>#d' file