grep
하고 싶지만 앞의 다섯 줄과 다음 다섯 줄과 일치하는 줄도 표시합니다. 어떻게 하면 될까요?
질문자 :Mark Harrison
BSD 또는 GNU grep
-B num
을 사용하여 일치 전 행 수를 설정하고 -A num
을 사용하여 일치 후 행 수를 설정할 수 있습니다.
grep -B 3 -A 2 foo README.txt
전후에 동일한 수의 행을 원하면 -C num
사용할 수 있습니다.
grep -C 3 foo README.txt
이렇게 하면 앞 3줄과 뒤 3줄이 표시됩니다.
Pat Notz
-A
및 -B
는 -C n
( n
줄의 컨텍스트) 또는 -n
( n
줄의 컨텍스트의 경우... n이 1에서 9까지인 한)과 같이 작동합니다.
Stu
ack 는 grep과 유사한 인수로 작동하고 -C
허용합니다. 그러나 일반적으로 코드를 통해 검색하는 것이 더 좋습니다.
elmarco
grep astring myfile -A 5 -B 5
"astring"에 대해 "myfile"을 grep하고 각 일치 전후에 5줄을 표시합니다.
dbr
나는 일반적으로 사용
grep searchstring file -C n # n for number of lines of context up and down
grep과 같은 많은 도구에는 정말 훌륭한 man 파일도 있습니다. 나는 grep의 매뉴얼 페이지 로 할 수 있는 일이 너무 많기 때문에 grep의 매뉴얼 페이지를 많이 참조하고 있습니다.
man grep
많은 GNU 도구에는 매뉴얼 페이지 외에 더 유용한 정보 가 있는 정보 페이지도 있습니다.
info grep
Sam Merrell
그렙 사용
$ grep --help | grep -i context Context control: -B, --before-context=NUM print NUM lines of leading context -A, --after-context=NUM print NUM lines of trailing context -C, --context=NUM print NUM lines of output context -NUM same as --context=NUM
Chiel ten Brinke
ripgrep
성능에 관심이 있다면 grep
과 유사한 구문을 가진 ripgrep
rg -C5 "pattern" .
-C
,--context NUM
- 각 일치 전후에 NUM 행을 표시합니다.
-A
/ --after-context
및 -B
/ --before-context
와 같은 매개변수도 있습니다.
이 도구는 Rust의 정규식 엔진 위에 구축되어 대용량 데이터에서 매우 효율적입니다.
kenorb
에 "17655"의 검색 /some/file.txt
전 (사용 후 10 개 라인 콘텍스트를 나타내는 Awk
), 행 번호 앞에 출력 콜론. grep
-[ACB]
옵션을 지원하지 않는 경우 Solaris에서 이것을 사용하십시오.
awk ' /17655/ { for (i = (b + 1) % 10; i != b; i = (i + 1) % 10) { print before[i] } print (NR ":" ($0)) a = 10 } a-- > 0 { print (NR ":" ($0)) } { before[b] = (NR ":" ($0)) b = (b + 1) % 10 }' /some/file.txt;
Malcolm Boekhoff
다음은 awk
의 @Ygor 솔루션 입니다.
awk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=3 a=3 s="pattern" myfile
주 : 교체 와 a
b
전후 라인의 수와 변수를.
-A
, -B
및 -C
매개변수를 지원하지 않는 시스템에 특히 유용합니다.
kenorb
$ grep thestring thefile -5
-5
는 일치하는 'thestring'이 -C 5
또는 -A 5 -B 5
5
줄을 가져옵니다.
JBone
Grep에는 Context Line Control
--context
를 사용할 수 있습니다.
| grep -C 5
또는
| grep -5
트릭을해야합니다
prime
코드를 자주 검색하는 경우 AG Silver searcher 가 grep보다 훨씬 더 효율적입니다(즉, 더 빠름).
-C 옵션을 사용하여 컨텍스트 라인을 표시합니다.
예:
ag -C 3 "foo" myFile line 1 line 2 line 3 line that has "foo" line 5 line 6 line 7
Rose
나는 그것을 컴팩트하게 한다:
grep -5 string file
이는 다음과 같습니다.
grep -A 5 -B 5 string file
franzisk
grep 명령에서 -A
(이후) 및 -B
(이전) 옵션을 사용할 수 있습니다.
grep -nri -A 5 -B 5 .
시도하십시오.
Issam.Chorfa
출처 : http:www.stackoverflow.com/questions/9081/grep-a-file-but-show-several-surrounding-lines
'etc. > StackOverFlow' 카테고리의 다른 글
JavaScript에서 배열을 통해 루프 (0) | 2021.10.06 |
---|---|
char[]가 비밀번호에 대해 String보다 선호되는 이유는 무엇입니까? (0) | 2021.10.06 |
JavaScript에서 클립보드에 복사하려면 어떻게 합니까? (0) | 2021.10.06 |
Git에서 커밋을 푸시할 때 'rc refspec 마스터가 일치하지 않습니다'라는 메시지가 표시됨 (0) | 2021.10.06 |
Git에서 커밋을 푸시할 때 'rc refspec 마스터가 일치하지 않습니다'라는 메시지가 표시됨 (0) | 2021.10.06 |