用于在C程序的while块中搜索单词的Shell脚本

时间:2014-11-12 09:33:37

标签: shell awk sed scripting

我想搜索一个单词"而#34;在一个文件中,如果文件包含单词,那么在给定的块中,我需要搜索另一个单词" Hello"如果你好,那么应该打印它的行号。

请帮助这方面 在此先感谢。

1 个答案:

答案 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设置为空 然后搜索包含whileHello

的所有行

如果您想在整个文件中搜索while,然后如果找到它,请使用Hello打印阻止,请执行以下操作:

awk -v RS="" 'FNR==NR && /while/ {f=1;next} f && /Hello/'  file file

这两次读file。首次搜索while,如果找到,请设置f
第二次,如果f为真,并且找到Hello,则打印阻止。