AWK命令打印反转

时间:2014-01-24 13:46:23

标签: linux awk

对于所提供的内容需要一些帮助...假设我们将以下文本放入文件中

aeht
mark
tjae
aejra
ytha
mark 
yeaja

因此它必须开始打印,直到它找到单词mark,这将不会打印,但会更改awk的行为并停止打印下一行,直到它发现第二行mark为止再次打印等每次发现mark行为都会发生变化...... 可能吗?怎么办呢?

(永远不应打印mark行)

2 个答案:

答案 0 :(得分:3)

无论您是否想要输出中的“标记”,此行都应该为您提供帮助:

awk -v f=1 '/^mark$/{f*=-1;next}f>0' file

试验:

kent$  cat file
1
2
mark
3
4
5
mark
6
7
8
mark
9
10

kent$  awk -v f=1 '/^mark$/{f*=-1;next}f>0' file
1
2
6
7
8

答案 1 :(得分:3)

$ awk '/mark/{f=!f;next} !f' file
aeht
yeaja