检查一堆大文件

检查一堆大文件

我有一个包含大文件的文件夹(每个文件几GB)。我想搜索PATTERN这些文件。我可以用 or 来做到这grep一点ack

$ grep -n 'PATTERN' /path/to/files/*.log

现在,我有一个包含所有行的列表,包括PATTERN.但是,我需要一些区域包含这些行来查看上下文:发生之前的几行PATTERN和发生之后的几行。我更愿意列出这些行块以及每个行的坐标(文件和行号)。怎样才能做到呢?

答案1

使用 gnu grep

grep -B <number_lines> -A <number_lines> -n 'PATTERN' /path/to/files/*.log

例如,要获取匹配的 grep 行上方的 6 行以及其后的 4 行:

grep -B 6 -A 4 -n 'PATTERN' /path/to/files/*.log

man grep

上下文线控制
-A NUM, --after-context=NUM
在匹配行之后打印 NUM 行尾随上下文。
-B NUM, --before-context=NUM
在匹配行之前打印 NUM 行前导上下文。

相关内容