Grep

檢查一堆大文件

  • March 28, 2016

我有一個包含大文件的文件夾(每個文件只有幾個 GB)。我想搜尋PATTERN這些文件。我可以用grepor做到這一點ack

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

現在,我有一個包含所有行的列表,包括PATTERN. 但是,我需要一些區域包括這些行來查看上下文:PATTERN發生之前的幾行和之後的幾行。我更願意列出這些行塊的座標(文件和行號)。怎麼做?

用 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 行。

引用自:https://unix.stackexchange.com/questions/272084