Grep
檢查一堆大文件
我有一個包含大文件的文件夾(每個文件只有幾個 GB)。我想搜尋
PATTERN
這些文件。我可以用grep
or做到這一點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 行。