0

我想使用一个正则表达式来查找文本中的所有行,除了我用正则表达式传递的行。我在这里找到了一个有用的代码,在这里输入链接描述awk '/.*test.*/{f=1}f;/end/{f=0}' myFile。我想反过来使用它。

我的意思是我不想看到testend之间的线条,但我想看到其他线条。

我想在Linux环境中执行此操作。

我怎样才能否定这些AWK

4

3 回答 3

1

要查看 和 之间的所有行firstend包括:

awk '/first/,/end/'

要反转:

awk '/first/,/end/{next}1'

(对于第二个示例,可读性更强:awk '/first/,/end/{next}{print}'。上面的版本取决于 awk 的默认操作{print};1相当于true。)

于 2013-10-27T07:21:08.753 回答
0

有些像这样

awk '/test/ {f=1} !f; /end/ {f=0}' file

它将打印所有行,直到找到test,然后在找到后再次开始打印end

于 2013-10-27T07:18:27.860 回答
0

sed更适合这个:

sed '/first/,/end/d'

将删除与模式匹配的行之间的所有行,first直到第一行与模式匹配end

于 2013-10-27T14:36:13.623 回答