【发布时间】:2013-04-10 13:08:39
【问题描述】:
我有一个包含以下记录的大文本文件:
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 可以做到。做这种事情的最佳方法是什么?
【问题讨论】:
-
我看到您只标记了 unix、grep 和 find,但是 awk 可能对此有用。这里有一个很好的衬垫列表:catonmat.net/blog/wp-content/uploads/2008/09/awk1line.txt
-
如果该行包含“John”,是否要搜索“Jo”来匹配?如果您的行是
024567808 Bob date Jo etc,您是要搜索“Jo”来匹配还是只在 Jo 出现在第二个字段中时才匹配? -
我正在搜索完整的工作作为“名称”
-
我不知道“我正在搜索完整的工作名称”是什么意思,所以我不知道该评论是否/如何与我的两个问题相关。您能否仅通过一些是/否答案或一些额外的示例输入/输出来澄清?