Shell - 如何从具有多个模式的文本文件中删除行?

时间:2017-01-22 03:43:04

标签: linux shell ubuntu sed

我在下面看到了这个代码并且它有效,但仅适用于一种模式。

sed -i.bak '/pattern to match/d' ./infile

如何使用此语句但使用多种模式? 例如,如果我想删除里面带有“cat”或“dog”字样的行。

我尝试了这个但是没有用

sed -i.bak '/(cat|dog)/d' ./infile

3 个答案:

答案 0 :(得分:0)

转义特殊字符

\(cat\|dog\)

答案 1 :(得分:0)

您可以将多个SED命令放入单个表达式中:

sed '/cat/d; /dog/d; /peanut/d' file

使用-e传递多个表达式:

sed -e '/cat/d' -e '/dog/d' -e '/peanut/d' file

答案 2 :(得分:0)

像这样:

dateOfBirth = new DateTime(model.dateOfBirth.Value.Ticks);