Head (Unix)

head is a program on Unix and Unix-like operating systems used to display the beginning of a text file or piped data.

Syntax
The command syntax is:

head [options] $⟨file_name⟩$

By default, will print the first 10 lines of its input to the standard output.

Option flags
-n: --lines: The number of lines printed may be changed with a command line option. The following example shows the first 20 lines of filename:

head -n 20 filename

This displays the first 5 lines of all files starting with foo:

head -n 5 foo*

Most versions allow omitting and instead directly specifying the number:. GNU head allows negative arguments for the  option, meaning to print all but the last - argument value counted - lines of each input file. -c: --bytes: Print first x number of bytes.

Other command
Many early versions of Unix and Plan 9 did not have this command, and documentation and books used sed instead:

sed 5q filename

The example prints every line (implicit) and quit after the fifth.

Equivalently, awk may be used to print the first five lines in a file:

awk 'NR < 6' filename

However, neither sed nor awk were available in early versions of BSD, which were based on Version 6 Unix, and included head.

Implementations
A  command is also part of ASCII's MSX-DOS2 Tools for MSX-DOS version 2. The head command has also been ported to the IBM i operating system.