Nice programing

grep 출력에 파일 이름 및 줄 번호 표시

nicepro 2020. 10. 9. 12:24
반응형

grep 출력에 파일 이름 및 줄 번호 표시


grep을 사용하여 내 레일 디렉토리를 검색하려고합니다. 특정 단어를 찾고 있는데 grep을 사용하여 파일 이름과 줄 번호를 인쇄하고 싶습니다.

나를 위해 이것을 할 grep 플래그가 있습니까? 나는의 조합을 사용하는 것을 시도하고있다 -n-l그러나이 중 하나없는 번호로 파일 이름을 인쇄하거나 쉽게 읽을 수 없습니다 터미널에 많은 텍스트를 덤핑하고 있습니다.

전의:

  grep -ln "search" *

awk로 파이프해야합니까?


-l의 출력을 억제하기 때문에 너무 제한적 이라고 생각 -n합니다. 내가 제안 -H( --with-filename) : 각 경기에 대한 파일 이름을 인쇄합니다.

grep -Hn "search" *

출력이 너무 많으면 -o일치하는 부분 만 인쇄 해보십시오 .

grep -nHo "search" * 

grep -rin searchstring * | cut -d: -f1-2

즉, 재귀 적으로 ( searchstring이 예 에서는 문자열 대해) 검색 하고 대소 문자를 무시하고 줄 번호를 표시합니다. 그 grep의 출력은 다음과 같습니다.

/path/to/result/file.name:100: Line in file where 'searchstring' is found.

다음 :으로 필드 구분 기호로 콜론 사용 하고 필드 1에서 2까지 표시 하는 cut 명령으로 결과를 파이프합니다 .

줄 번호가 필요하지 않을 때는 자주 사용하고 -f1(파일 이름과 경로 만) 출력을으로 파이프하여 uniq각 파일 이름을 한 번만 볼 수 있습니다.

grep -ir searchstring * | cut -d: -f1 | uniq

나는 사용하는 것을 좋아한다 :

grep -niro 'searchstring' <path>

그러나 그것은 내가 항상 다른 방법을 잊고 어떤 이유로 Robert de grep -niro잊을 수 없기 때문입니다. :)

참고 URL : https://stackoverflow.com/questions/8105685/show-filename-and-line-number-in-grep-output

반응형