매우 긴 로그 파일이 있습니다. grep에게 처음 10 줄만 검색하도록 요청할 수 있습니까?
답변
파이프의 마법;
head -10 log.txt | grep <whatever>
답변
Google에서 이것을 찾은 사람들을 위해 n
여러 파일 의 첫 줄 을 검색해야 했지만 일치하는 파일 이름 만 인쇄해야했습니다. 나는 사용했다
gawk 'FNR>10 {nextfile} /pattern/ { print FILENAME ; nextfile }' filenames
FNR..nextfile
10 개 번 라인 파일 처리를 중지 볼되었다. //..{}
에 인쇄 파일 이름 및 이동 때마다 해당 파일을 보여줍니다 최대의 첫 경기. 다른 프로그램의 이점을 위해 파일 이름을 인용하려면
gawk 'FNR>10 {nextfile} /pattern/ { print "\"" FILENAME "\"" ; nextfile }' filenames
답변
또는 다음 awk
없이 단일 프로세스에 사용하십시오 |
.
awk '/your_regexp/ && NR < 11' INPUTFILE
각 줄에서 your_regexp
일치하고 레코드 (줄) 수가 11 개 미만이면 기본 작업 (입력 줄 인쇄)을 실행합니다.
또는 다음을 사용하십시오 sed
.
sed -n '/your_regexp/p;10q' INPUTFILE
정규 표현식을 확인하고 줄을 -n
인쇄하고 (입력을 인쇄하지 않음, 그렇지 않으면 기본값 임) 10 번째 줄 바로 후에 종료됩니다.
답변
와 함께 프로그램을 사용하는 몇 가지 옵션이 있습니다 grep
. 내 생각에 가장 간단한 방법은 다음을 사용하는 것입니다 head
.
head -n10 filename | grep ...
head
-n
옵션을 사용하여 처음 10 줄 을 출력 한 다음 해당 출력을 grep
.
답변
grep "pattern" <(head -n 10 filename)
답변
다음 줄을 사용할 수 있습니다.
head -n 10 /path/to/file | grep [...]
답변
이를 수행하기 위해 의 출력을 head -10 file
파이프 할 수 있습니다 grep
.
head -10 file | grep …
Perl 사용 :
perl -ne 'last if $. > 10; print if /pattern/' file