여러 개의 대용량 파일을 확인하세요.

여러 개의 대용량 파일을 확인하세요.

대용량 파일(각각 몇 GB)이 포함된 폴더가 있습니다. 이 파일들을 검색하고 싶습니다 PATTERN. 또는 다음을 사용하여 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

예를 들어, 위의 6개 라인과 일치하는 grep 라인 뒤의 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 행을 인쇄합니다.

관련 정보