output.txt
146만 행의 데이터가 포함된 텍스트 파일이 있다고 가정해 보겠습니다 .
27QL
파일에서 텍스트를 검색하고 싶습니다.
텍스트가 존재하는 경우 Linux는 줄 번호를 반환해야 합니다.
어떻게 해야 하나요?
나는 그것을 사용할 수 있습니까 grep
? 그렇다면 어떻게?
답변1
유틸리티 에는 패턴과 일치하는 행 번호를 grep
일반 출력 앞에 추가하는 표준 옵션이 있습니다 . 줄 번호와 줄 내용은 콜론으로 구분됩니다.-n
grep
grep -n -F -w '27QL' file
여기서는 완전한 단어만 검색하기 위해 비표준 -w
옵션도 사용했습니다. 즉, 127QL
또는 와 일치하지 않습니다 27QLA
. 작성자-F
grep
끈정규 표현식보다는
출력에서 실제 데이터를 제거하려면(즉, 줄 번호만 추출) 출력을 다음으로 전달합니다 cut
.
grep -n -F -w '27QL' file |
cut -d : -f 1
답변2
다음을 사용할 수도 있습니다 sed
.
sed -n '/27QL/=' infile
sed의 스위치 -n
는 자동 기본 인쇄 작업이며 =
로그인 후 /pattern/=
매트 모드의 줄 번호만 인쇄됩니다 .
awk
/보다 더 강력한 텍스트 처리 도구를 사용하더라도 :grep
sed
awk '/27QL/{ print NR }' infile
NR
awk로 표현질소수량오른쪽기록.