다음 그렙
grep -r -e -n coll *
표시됩니다
fullpath/filename: <tag-name>coll</tag-name>
다음 텍스트가있는 행을 알고 싶습니다.를 추가하려고 시도했지만 -n
작동하지 않았습니다. 추가를 시도했지만 | grep -n *
이상한 일이 발생했습니다.
내가보고 싶은 것은 (포맷에 관심이 없음)
fullpath/filename:10: <tag-name>coll</tag-name>
답변
-e
옵션 목록의 끝에 놓아야 합니다.grep -rne coll *
답변
어떤 -r 및 -e에 필요한!
패턴의 줄 번호를 얻으십시오!
grep -n "pattern" file.txt
당신은 출력이 또 다른 grep 명령을 추가 할 경우에만 줄 번호를 얻으려면!
grep -n "pattern" file.txt | grep -Eo '^[^:]+'
답변
특정 파일에서 패턴을 grep하고 일치하는 줄을 얻으려면 다음을 수행하십시오.
grep -n <Pattern> <File> | awk -F: '{ print $1 }' | sort -u
또는 cut
@ wjandrea에서 제안한대로 사용 :
grep -n <Pattern> <File> | cut -f1 -d: | sort -u
어디
<Pattern>
인용 된 glob 패턴입니다 (-E
regexp에 대한 옵션 사용 ).<File>
관심있는 파일입니다.- 첫 번째 파이프
awk ...
는 grep 출력의 라인 번호를 필터링합니다 (:
각 라인 이전 ). - 두 번째 파이프는 줄 번호가 한 번만 표시되도록합니다.