매우 긴 로그 파일이 있습니다. grep에게 처음 10 줄만 검색하도록 요청할 수 있습니까?
매우 긴 로그 파일이 있습니다. grep에게 처음 10 줄만 검색하도록 요청할 수 있습니까?
답변:
파이프의 마법;
head -10 log.txt | grep <whatever>
head log.txt | grep <whatever>
-l
옵션을 사용할 때 이것을 수행하는 방법이 있습니까? 처음 5자인 모든 파일을 나열하고 싶습니다 RIFFD
.
Google에서 이것을 찾은 사람들을 위해 n
여러 파일 의 첫 줄 을 검색해야 했지만 일치하는 파일 이름 만 인쇄해야했습니다. 나는 사용했다
gawk 'FNR>10 {nextfile} /pattern/ { print FILENAME ; nextfile }' filenames
FNR..nextfile
10 개 번 라인 파일 처리를 중지 볼되었다. //..{}
에 인쇄 파일 이름 및 이동 때마다 해당 파일을 보여줍니다 최대의 첫 경기. 다른 프로그램의 이점을 위해 파일 이름을 인용하려면
gawk 'FNR>10 {nextfile} /pattern/ { print "\"" FILENAME "\"" ; nextfile }' filenames
FNR=1
첫 번째 줄만 검색합니다. 감사!
find ./path -type -f -exec awk 'FNR>10 {nextfile} /pattern/ { print FILENAME ; nextfile }' '{}' +
-type f
또는 다음 awk
없이 단일 프로세스에 사용하십시오 |
.
awk '/your_regexp/ && NR < 11' INPUTFILE
각 줄에서 your_regexp
일치하고 레코드 (줄) 수가 11 개 미만이면 기본 작업 (입력 줄 인쇄)을 실행합니다.
또는 다음을 사용하십시오 sed
.
sed -n '/your_regexp/p;10q' INPUTFILE
정규 표현식을 확인하고 줄을 -n
인쇄하고 (입력을 인쇄하지 않음, 그렇지 않으면 기본값 임) 10 번째 줄 바로 후에 종료됩니다.
awk '{ if ( NR <= 10 ) { if( $0 ~ "YOUR_REGEXP") { print } } else { exit; } }' textfile
않습니다.
awkish
. 2xifs
그리고 1xelse
행동 진술이 필요하지 않은 명령에서 aho를 만들 것입니다. 와인 버거와 커니 핸 외침 ...
다음 줄을 사용할 수 있습니다.
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
head -10 log.txt | grep -A 2 -B 2 pattern_to_search
-A 2
: 패턴 앞에 두 줄을 인쇄합니다.
-B 2
: 패턴 뒤에 두 줄을 인쇄합니다.
head -10 log.txt # read the first 10 lines of the file.
-C 2
다음과 같이 할 것입니다-A 2 -B 2
grep -A 10 <패턴>
이것은 패턴과 패턴 뒤의 다음 10 줄을 잡는 것입니다. 이것은 알려진 패턴에 대해서만 잘 작동합니다. 알려진 패턴이없는 경우 "헤드"제안을 사용하십시오.
head
다음으로 파이프 할 수도 있습니다 .someCmd | head -10