如何在shell中删除包含两个特定关键字的行?

时间:2019-12-05 12:49:44

标签: linux shell unix sed scripting

我有很多这种格式的行:

012343.ux002tesseract!Mat_server5.28746.1.0: Login ****** Oslo      -AXCVT2 - Versio 1.4 13.10.2016

现在,我要删除所有包含012343AXCVT2的行。

您会看到上面的行包含了两者。

2 个答案:

答案 0 :(得分:2)

使用sed看起来很容易,可以从Sed - An Introduction and Tutorial by Bruce Barnett中学到一些知识,regular expressions可以从regex crosswords中学到:

sed '/012343.*AXCVT2/d'

将删除包含012343,后跟AXCVT2的行。

要删除双向包含的行,我们将。可以做两个sed表达式:

sed -e '/012343.*AXCVT2/d' -e '/AXCVT2.*012343/d'

或更短:

sed '/012343.*AXCVT2/d; /AXCVT2.*012343/d'

答案 1 :(得分:0)

这可能对您有用(GNU sed):

sed '/012343/{/AXCVT2/d}' file