sourcecode

셸 명령 출력의 첫 줄을 가져옵니다.

codebag 2023. 4. 13. 20:49
반응형

셸 명령 출력의 첫 줄을 가져옵니다.

버전 번호를 읽는 동안vim무시해야 할 추가 행이 많이 있습니다.나는 의 매뉴얼을 읽으려고 했다.head다음 명령을 시도했습니다.

vim --version | head -n 1

이것이 올바른 접근법인지 알고 싶습니다.

네, 이것은 명령어 출력의 첫 번째 행을 얻는 방법 중 하나입니다.

명령어가 캡처하는 표준 에러에 동일한 방법으로 출력하는 경우 명령어의 표준 에러를 표준 출력 스트림으로 리다이렉트해야 합니다.

utility 2>&1 | head -n 1

첫 번째 줄을 캡처하는 방법은 여러 가지가 있습니다.sed 1q(첫 번째 줄 뒤에 표시),sed -n 1p(첫줄만 인쇄하고 모두 읽는다),awk 'FNR == 1'(첫줄만 인쇄하고 다시 모든 것을 읽습니다)

다음을 사용합니다.

awk 'FNR <= 1' file_*.txt

@Kusalananda가 지적한 바와 같이 명령줄의 첫 번째 줄을 캡처하는 방법은 여러 가지가 있습니다.head -n 1와일드카드를 사용할 경우 추가 정보가 출력되기 때문에 최적의 옵션이 아닐 수 있습니다.변화하는'FNR == i'로.'FNR <= i'첫 번째 i라인을 얻을 수 있습니다.

예를 들어 file_1.txt라는 이름의 파일이 n개 있는 경우 ... file_n.txt:

awk 'FNR <= 1' file_*.txt

hello
...
bye

단,head와일드카드는 파일 이름을 인쇄합니다.

head -1 file_*.txt

==> file_1.csv <==
hello
...
==> file_n.csv <==
bye

언급URL : https://stackoverflow.com/questions/46021955/get-first-line-of-a-shell-commands-output

반응형