对于所提供的内容需要一些帮助...假设我们将以下文本放入文件中
aeht
mark
tjae
aejra
ytha
mark
yeaja
因此它必须开始打印,直到它找到单词mark
,这将不会打印,但会更改awk的行为并停止打印下一行,直到它发现第二行mark
为止再次打印等每次发现mark
行为都会发生变化......
可能吗?怎么办呢?
(永远不应打印mark
行)
答案 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