cat을 사용하여 파일의 첫 줄을 어떻게 읽습니까?


201

를 사용하여 파일의 첫 줄을 어떻게 읽 cat습니까?

답변:


378

당신은 필요하지 않습니다 cat.

head -1 file

잘 작동합니다.


65
+1. 당신은 전체 고양이가 아닌 머리 만 필요합니다 : P (명령 꼬리도
똥의

합니까는 head전체 파일을 읽고 그것을 잘라, 또는 그것은 단지 한 라인을 읽을 수 있습니까?
CMCDragonkai

@ CMCDragonkai, 소스를 확인할 수 있다고 생각합니다 .
Carl Norum

2
첫 줄만 읽은 것 같습니다. 수백 메가 바이트 파일을 밀리 초 단위로 엽니 다.
Brian Haak

1
...알았다! cat <(head file1) <(head file2). 출처
James Owers


41

여러 가지 방법이 있습니다.

sed -n 1p file
head -n 1 file
awk 'NR==1' file

21

을 사용할 수 cat file.txt | head -1있지만 에서처럼 헤드를 직접 사용하는 것이 좋습니다 head -1 file.txt.


16

에서는 불가능할 수 있습니다 cat. 사용해야 할 이유가 cat있습니까?

bash 명령으로 간단히 수행 해야하는 경우 다음과 같이 작동합니다.

head -n 1 file.txt

9

cat혼자서 가능하지는 않지만 head이 작업 을 사용하지 않으려는 경우 :

 cat <file> | awk 'NR == 1'

2
나는 특별히 사용하도록 설계된 라인에서 '고용이없는 고양이 사용'을 부르는 것이 어리석은 것이라고 생각 cat합니다.
jkerian

이 방법은 원하는 줄을 선택할 수 있기 때문에 좋습니다.
desgua

3
@desgua awk는 훌륭하지만 cat여기서는 필요하지 않습니다 . awk 'NR == 2 {print $0}' <file>같은 일을합니다. (그리고 조금 더 배우면 훨씬 더 awk.
Eric Wilson

5

이 질문은 오래 전부터 사용되어 왔으며 아무도 사전 맵 파일 내장 접근 방식을 제공하지 않았다는 것에 놀랐습니다.

IFS= read -r first_line <file

... 확장 된 변수에 파일의 첫 줄을 "$first_line"쉽게 넣습니다 .

때문에 또한, readbash는 내장이 사용이 더 서브 쉘을 필요로하지 않습니다, 그것은 다음과 같은 하위 프로세스를 포함하는 방법보다 훨씬 더 효율적 headawk.


IFS=처음에 어떤 부분이 있습니까?
Florian Castellane

내 나쁜, 여기에 설명이 있습니다 : unix.stackexchange.com/questions/184863/…
Florian Castellane

권리; 이 경우 지우기 IFS는 읽은 문자열에서 선행 및 후행 공백이 제거되는 것을 방지합니다.
찰스 더피

3

bash v4 이상이 있다면 외부 명령이 필요하지 않습니다.

< file.txt mapfile -n1 && echo ${MAPFILE[0]}

또는 정말로 원한다면 cat

cat file.txt | mapfile -n1 && echo ${MAPFILE[0]}

:)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.