[linux] 셸 명령 출력의 첫 줄 가져 오기
의 버전 번호를 읽으려고 할 때 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, … file_n.txt라는 이름의 파일이 n 개있는 경우 :
awk 'FNR <= 1' file_*.txt
hello
...
bye
그러나 head
와일드 카드를 사용하면 파일 이름이 인쇄됩니다.
head -1 file_*.txt
==> file_1.csv <==
hello
...
==> file_n.csv <==
bye