-1

我有一个包含以下记录的大文本文件:

024567808 name date etc..
0376567 dfu ugig etc..
0388888 dtg hii etc..
032357 tuth gug etc..
025789 gkh kjkjk etc..

使用 grep 命令,我可以检索包含关键字的行。如果它以 03 开头,我如何检索下一条记录?

例如,我搜索name,它返回第一行。我想要这条记录以及下一个 02 记录之前的所有 03 行。

输出应该是:

024567808 name date etc..
0376567 dfu ugig etc..
0388888 dtg hii etc..
032357 tuth gug etc..

我认为 grep 对于这类任务来说不够强大。也许 awk 可以做到。做这种事情的最好方法是什么?

4

1 回答 1

2

这可能是你想要的:

awk '/^02/{f=0} /name/{f=1} f' file

这完全取决于您是否希望“名称”仅出现在一行的特定位置,以及您是否希望“名称”仅在它不是较长单词的一部分时才匹配,例如您是否想要搜索“Jo”匹配“约翰”?

于 2013-04-10T13:23:57.433 回答