Skip to content

Linux 기본명령어 head #
Find similar titles

리눅스 기본 명령어 - head #

리눅스 사용 중 파일의 내용을 확인해야 할 경우가 있다. 이때 사용하는 명령어가 cat, more, head, tail 등이 있다. 특히 파일에 많은 내용이 있어 cat 명령어나 vi로 그 내용을 확인하려 하면 파일의 용량이 크기 때문에 부담이 될 수 있다. 그 중 head 명령어는 텍스트로된 파일의 앞부분을 지정한 만큼 출력하는 명령어이다. 반대의 명령어는 tail이다. 일반적으로 head 명령어는 text기반의 내용을 보여준다. 그러나 binary로 된 파일의 내용도 명령어는 실행이 되지만 알아볼 수 없는 문자로 출력이 되므로 binary로 된 파일에서는 거의 사용하지 않는 것이 좋다.

기본 사용법은 다음과 같다.

$ head [-n lines | -c bytes] [file ...]

가장 손쉽게 사용하는 법은 다음곽 같다.

$ head 파일명

아무 옵션없이 "head 파일명" 이라고 하면 앞에서 부터 10행까지만의 내용을 보여준다. 만약 더 추가적인 내용이 필요하다면 다음과 같이 옵션을 더하여 준다.

$ head -n 100 파일명

또한 "head -n 100 파일명"이라고 하면 앞에서 부터 100행(라인)까지를 보여준다. -n 옵션은 생략이 가능하며 -100과 같이 사용하여도 된다.

만약 바이트 단위로 내용을 보고자 한다면 아래와 같이 -c 옵션을 사용한다.

$ head -c 100

이 경우에는 100byte의 내용만큼 파일의 내용을 보내주고 명령어가 종료된다.

만약 출력되는 파일의 내용을 출력하고 싶다면 다음과 같이 기본 파일 입출력을 이용하면 된다.

$ head -100 파일명 > 저장_파일명

즉, cat, more, tail등과 같이 파일의 내용을 확인하는 명령어이다.

특히 생물학 데이터를 다루다 보면 Fasta, FastQ, BAM, SAM, Genbank 등 용량이 큰 파일을 다루게 되는데 작게는 몇 킬로바이트에서 수십 기가까지 되는 큰 파일을 핸들링할 경우가 있다. 이때 cat 명령어를 날리면 화면으로 출력이 되기 때문에 한참 동안 주루룩 지나쳐가는 화면을 보고 있어야 한다. 이럴 때 파일의 내용을 간단히 확인해 볼 수 있는 명령어가 바로 head 이다. 단어 그대로 해석해도 머릿 부분을 보는 걸 알 수 있다.

예를 들면 큰 VCF 파일이 있다고 하면 이를 열어서 진짜 VCF 파일인지 확인해야 하는 것이다. 그래서 첫 몇 줄만 보면 이 파일이 VCF파일인지 아닌지 확인할 수 있는 것이다.

예를 들어 Osativa_ref_N1.vcf 파일이 있다고 가정한다면 확장자를 보면 당연히 VCF파일인지 알 수 있으나 실제 VCF파일인지는 확인이 필요하다.

$ head  Osativa_ref_N1.vcf 
##fileformat=VCFv4.1
##samtoolsVersion=0.1.19-44428cd
##reference=file:////Osativa_204_v7.0_R/Osativa_204_v7.0_R_reference_genome.fasta
##contig=<ID=Chr1,length=43270923>
##contig=<ID=Chr2,length=35937250>
##contig=<ID=Chr3,length=36413819>
##contig=<ID=Chr4,length=35502694>
##contig=<ID=Chr5,length=29958434>
##contig=<ID=Chr6,length=31248787>
##contig=<ID=Chr7,length=29697621>

이와 같이 파일의 윗 부분을 확인하면 첫 줄에 #fileformat=VCFv4.1 와 같이 VCF 파일이라고 되어 있어 VCF파일이라는 것을 알 수 있다. 물론 파일의 내용을 전부 확인해야만 제대로 된 형식인지 알 수 있을 것이다.

옵션 #

  • -c, --bytes=[-]K : 각 파일의 처음부터 K bytes 까지를 출력한다. ‘-’를 붙일 경우 각 파일의 마지막 K bytes를 출력한다.
  • -n, --lines=[-]K : 각 파일의 처음 10개 행 대신 처음부터 K번째 행까지 출력한다. ‘-’를 붙일 경우 각 파일의 마지막 K 번째 행을 출력한다.
  • -q, --quiet, --silent : 파일의 이름을 header에 출력하지 않는다.
  • -v, --verbose : 항상 파일의 이름을 header에 출력한다

#

파일 명이 입력되지 않으면 표준입력을 읽어들이며, > 를 이용하여 다음과 같이 화면의 내용을 다른 파일로 저장할 수 있다.

$ head  file.txt  > head_file.txt

또한 위 옵션에서 언급된 K에 multiplier suffix를 입력할 수 있으며, 해당 값들은 아래 표와 같다.

b 512
kB 1000
K 1024
MB 1000 * 1000
M 1024 * 1024
GB 1000 * 1000 * 1000
G 1024 * 1024 * 1024
그 외 T, P, E, Z, Y

head명령의 세부 내용은 다음가 같다.

NAME
    head -- display first lines of a file
SYNOPSIS
    head [-n count | -c bytes] [file ...]
DESCRIPTION
    This filter displays the first count lines or bytes of each of the specified files, or of the standard input if no files are specified.  If count is omitted it defaults to 10.
If more than a single file is specified, each file is preceded by a header consisting of the string ``==> XXX <=='' where ``XXX'' is the name of the file.

EXIT STATUS
    The head utility exits 0 on success, and >0 if an error occurs.
SEE ALSO
    tail(1)

 The head command appeared in PWB UNIX.

Suggested Pages #

0.0.1_20140628_0