grep만 사용하여 첫 번째 항목만 찾습니다.

grep만 사용하여 첫 번째 항목만 찾습니다.

단어가 많은 파일이 있다고 가정하고 "xyz" 패턴이 있는 첫 번째 단어만 찾고 싶습니다. 같은 줄에 이 패턴이 있는 단어가 여러 개 있으면 어떻게 해야 합니까? -m일치하는 첫 번째 줄의 모든 단어를 반환합니다. grep 명령만 필요합니다.

답변1

기본적으로 grep다음을 인쇄합니다.윤곽패턴과 일치하므로 패턴이 한 줄에 한 번 이상 나타나면 는 grep해당 줄 전체를 인쇄합니다.

플래그를 추가하면 패턴이 나타나는 처음 7줄만 인쇄하도록 -m 7지시됩니다 .grep

따라서 원하는 대로 작동해야 합니다(테스트하지는 않았습니다).

grep -o -m 1 xyz myfile | head -1

편집: @Kusalananda가 지적한 대로 플래그가 꼭 필요한 것은 아니지만 -m플래그를 사용하면 grep전체 파일을 구문 분석할 필요가 없으며 특히 myfile대용량 파일인 경우 결과가 더 빨리 출력됩니다.

답변2

귀하의 질문에 대한 답변은 grep 매뉴얼 페이지에 있습니다.

grep -m1 'searchstring' file_name

옵션 -m<number>이 핵심입니다. -m1첫 번째 일치 항목, -m2처음 2번 항목 등만 표시됩니다.

관련 정보