使用grep在非常长的字符串中搜索单词

时间:2015-08-26 21:47:47

标签: linux bash text grep bigdata

我有一个包含唯一长字符串的大文件。我需要在该文件中搜索特定的单词。当然我不能使用gedit或类似的软件,因为它们会阻塞。因此,解决方案可以是grep。问题是,如果单词匹配,它会将完整的字符串返回到shell中,所以我找不到单词所在的位置,我无法观察到其他单词附近。

是否有任何特定选项可以在找到我的单词后立即传递以停止/暂停grep shell流(例如,匹配后的一定数量的字符)?

1 个答案:

答案 0 :(得分:3)

使用-o选项“仅显示与PATTERN匹配的匹配行的部分。”

示例:

% cat lorem
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.                                                                                                                                              
% grep -oE '.{20}fugiat.{20}' lorem
se cillum dolore eu fugiat nulla pariatur. Exc

编辑:@tripleee建议使用E部分,在比赛的两边给出填充。