단어가 많은 파일이 있다고 가정하고 "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번 항목 등만 표시됩니다.