我想搜索一个单词"而#34;在一个文件中,如果文件包含单词,那么在给定的块中,我需要搜索另一个单词" Hello"如果你好,那么应该打印它的行号。
请帮助这方面 在此先感谢。
答案 0 :(得分:-2)
有人这样吗?
cat file
Hi
This is a bloc
It may have while word
Here is Hello too
In this block
we have while
but not the other word
awk -v RS="" '/while/ && /Hello/' file
This is a bloc
It may have while word
Here is Hello too
这里每个块用空行分隔
要使awk
在块模式下工作,请将RS
设置为空
然后搜索包含while
和Hello
如果您想在整个文件中搜索while
,然后如果找到它,请使用Hello
打印阻止,请执行以下操作:
awk -v RS="" 'FNR==NR && /while/ {f=1;next} f && /Hello/' file file
这两次读file
。首次搜索while
,如果找到,请设置f
第二次,如果f
为真,并且找到Hello
,则打印阻止。