0

我正在尝试使用 sed 命令删除具有模式的文件中的行"></""/>"

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

任何人都可以为第二个建议一个解决方案吗?

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

4

5 回答 5

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
于 2013-10-09T13:03:05.650 回答
0

最后,让它工作。代码如下。sed -i '//>/d' $1 sed -i '/><//d' $1 谢谢大家。

于 2013-10-10T09:22:30.370 回答
0

你可以试试这个。我发现他的工作正常

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

它将删除所有包含></和的行/>

于 2013-10-10T09:59:00.927 回答
0

这可能对您有用:

sed -i -e '\#></#d' -e '\#/>#d' file
于 2013-10-12T09:22:23.917 回答
0

尝试以下操作:

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

您应该考虑使用与搜索模式不同的分隔/#/

于 2013-10-09T13:05:58.043 回答