파일의 처음 몇 줄 표시


24

파일이 상당히 많은 폴더가 있습니다. 다음을 표시하고 싶습니다.

filename_1
first line of file1
second line of file1
third line of file1
filename_2
first line of file2
second line of file2
third line of file2
filename_3
first line of file3
second line of file3
third line of file3

어떻게해야합니까?

답변:


54

다음과 같이 head명령을 사용하여 -n 인수와 함께 각 파일의 행 수를 지정하십시오.

head -n3 *

또는

head -n3 *.txt

단일 파일에서도 작동합니다.

head -n3 filename.txt

주석처럼 (나는 제안 된 솔루션의 청결 함을 좋아한다)이 명령은 파일 이름을 쓰지 않고 파일의 첫 줄만 기록한다
luri

@luri-정말요? 우분투 head버전 에서는 head (GNU coreutils) 8.5기본적으로 사용됩니다. 아니면 별칭을 사용하고 head --quiet있습니까?
주선

@luri : 그것은 나를 위해 파일 이름을 출력했습니다.
David Oneill

젠장. 배열에 대한 하나의 두 가지 답변;)
luri

12

머리

옵션 head과 함께 사용 합니다 -n.

head -n 10 FILE

파일의 처음 10 줄이 인쇄됩니다.

또 다른 유용한 변형은입니다 -n -NUMBER.

head -n -10 FILE

파일의 마지막 10 줄을 제외한 모든 줄이 인쇄됩니다.

문제를 해결하고 원하는 결과를 얻으려면 다음을 수행하십시오.

basename * && head -n NUMBER *

또는

basename *.FILETYPE && head -n NUMBER *.FILETYPE

이렇게하면 다음과 같은 결과가 나옵니다.

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

이것은 당신이 원하는 것을 할 것입니다.

find . -print -exec head {} -n 3 \;

-print파일 이름을 표시하고 나머지 (-에서 exec)는 각 파일의 처음 3 줄을 표시합니다

필요에 따라 번호를 변경하십시오 ...


1

헤드 출력에 파일 이름을 추가하려면 'head -v'를 사용하십시오. 따라서 'head -vn 3 * .html'은 다음을 제공합니다.

# head -vn 3 *.html
==> WebInfo.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> convert.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

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