grep을 사용하여 줄 번호 만보고
잘못된 형식 (이 경우 패턴 발생)이 포함 된 파일이 있습니다 \\backslash
. grep
이것이 발생하는 줄 번호 만 반환하는 데 사용 하고 싶습니다 (예 : 일치 항목이 여기에 있으므로 줄 # x로 이동하여 수정).
그러나 grep -n
일치 또는 줄 자체가 아니라 줄 번호 ( ) 를 인쇄하는 방법이없는 것 같습니다 .
다른 정규식을 사용하여 줄 번호를 추출 할 수 있지만 grep이 스스로 할 수 없도록하고 싶습니다. grep -no
가장 가깝다고 생각하지만 여전히 일치를 표시합니다.
시험:
grep -n "text to find" file.ext | cut -f1 -d:
AWK를 사용할 수있는 경우 :
awk '/textstring/ {print FNR}' textfile
이 경우 FNR은 라인 번호입니다. AWK는 grep | cut을 볼 때나 grep 출력을 가져 와서 조작 할 때 유용합니다.
이 모든 답변에는 grep이 전체 일치하는 줄을 생성 한 다음 다른 프로그램으로 파이프해야합니다. 줄이 매우 긴 경우 sed를 사용하여 줄 번호를 출력하는 것이 더 효율적일 수 있습니다.
sed -n '/pattern/=' filename
Bash 버전
lineno=$(grep -n "pattern" filename)
lineno=${lineno%%:*}
첫 번째가 아닌 콜론 뒤에 두 번째 필드를 원할 것입니다.
grep -n "text to find" file.txt | cut -f2 -d:
패턴과 일치하는 줄 수를 계산하려면 :
grep -n "Pattern" in_file.ext | wc -l
일치하는 패턴을 추출하려면
sed -n '/pattern/p' file.est
패턴이 일치 된 줄 번호를 표시하려면
grep -n "pattern" file.ext | cut -f1 -d:
나는에 대한 답변을 권장 sed
하고 awk
그냥 줄 번호를 얻기보다는 사용하기위한 grep
전체 일치하는 라인을 얻기 위해 다음과 출력에서 그것을 제거 cut
하거나 다른 도구입니다. 완전성을 위해 Perl을 사용할 수도 있습니다.
perl -nE '/pattern/ && say $.' filename
또는 Ruby :
ruby -ne 'puts $. if /pattern/' filename
grep 만 사용 :
grep -n "text to find" file.ext | grep -Po '^[^:]+'
참고 URL : https://stackoverflow.com/questions/6958841/use-grep-to-report-back-only-line-numbers
'IT story' 카테고리의 다른 글
Python-목록을 함수 매개 변수로 사용 (0) | 2020.09.02 |
---|---|
마우스 휠을 사용할 때 JScrollPane에서 스크롤 속도를 높이는 방법은 무엇입니까? (0) | 2020.09.02 |
io.sockets.emit과 broadcast의 차이점은 무엇입니까? (0) | 2020.09.02 |
angularjs의 조건부 ng-include (0) | 2020.09.02 |
미니 버퍼에 현재 파일의 전체 경로를 표시하는 기능 (0) | 2020.09.02 |