grep 명령을 사용하여 첫 번째 줄을 인쇄하는 방법은 무엇입니까?

grep 명령을 사용하여 첫 번째 줄을 인쇄하는 방법은 무엇입니까?

이라는 파일이 있습니다 . 명령을 사용하여 첫 번째 줄만 file.txt인쇄하려면 어떻게 해야 합니까 ?grep

답변1

이것은 grep의 색다른 응용 프로그램이지만 GNU grep을 사용하여 수행할 수 있습니다.

grep -m1 "" file.txt

빈 표현식이 무엇이든 일치하기 때문에 작동하며 -m1첫 번째 일치 후에 grep이 종료됩니다.

-m NUM, --max-count=NUM
       Stop reading a file after NUM matching lines.

답변2

이것은 아무것도 아니다 grep. "grep"이라는 이름 자체는 "세계적인정규식을 검색하여 인쇄합니다. 이것이 바로 이 ed명령이 수행하는 작업 g/re/p입니다(주어진 정규식에 대해 re).

ed1969년에 소개된 대화형 라인 편집기이지만 현재 시스템에 설치되어 있을 가능성이 높습니다(표준 POSIX 도구임). , 및 의 특정 기능에 대한 바로가기 또는 별칭 으로 생각할 수 있는 , 즉 (비대화형) 스트림 편집기인 "stream- " grep에서 이를 가져 옵니다 .ededseded

대신 이것을 사용해 봅시다 sed:

sed -n '1p' file.txt

문자열 은 주어진 주소에 해당하는 줄( , 첫 번째 줄) 을 인쇄( )하는 1p작은 sed"스크립트" 입니다. 그건 그렇고, edit 명령은 (놀랍지도 않게) 편집기에서 동일한 작업을 수행합니다.p11ped

스크립트가 명시적으로 인쇄하지 않는 모든 항목의 출력을 억제하므로 -n우리가 얻는 것은 파일의 첫 번째 줄뿐입니다 file.txt.

또는:

sed '1q' file.txt

이는 파일의 모든 행을 인쇄하지만 q(인쇄 후) 행 1에서 종료됩니다( ). 이는 와 정확히 같습니다 head -n 1 file.txt.

POSIX 표준에서(head명령의 기본head -n N) 매우 유사한 내용을 말합니다(의역). sed 'Nq'즉, "각 줄을 인쇄하고 해당 줄에서 종료합니다 N". 기존 Unix 구현과의 대칭성과 하위 호환성 head때문에 표준에 포함되었습니다 .tail

답변3

첫 번째 줄에 고유한 문자열이 없으면 grep만으로는 이 작업을 수행할 수 없습니다. head -n 1 file.txt그 자리에서 일할 것입니다.

패턴과 일치하는 첫 번째 줄만 인쇄하려면 헤드를 grep으로 파이프하세요.

head -n 1 * | grep [pattern]

답변4

이것이 df 출력에서 ​​헤더를 가져오는 데 사용하는 방법입니다. 기본적으로 두 명령은 ";" 순서로 실행됩니다. df -h |head-n1; df -h |

관련 정보