Команда head позволяет задействовать одноименную утилиту для вывода нескольких первых строк из текстового файла или вывода другой утилиты. Если вы исполняете команду, которая выводит большой объем данных и при этом заинтересованы лишь в нескольких первых строках вывода, эта команда — именно то, что вам нужно.
Базовый синтаксис команды выглядит следующим образом:
$ head [параметры] [файлы]
Утилита head может выводить как начальные строки вывода другой утилиты (в этом случае имен файлов не указывается), так и начальные строки одного или нескольких текстовых файлов с указанными именами. В том случае, если выводятся начальные строки нескольких файлов, их имена упоминаются в выводе. Утилита поддерживает ряд полезных параметров, а именно, параметр -n, позволяющий задать количество выводимых строк (по умолчанию выводится 10 строк), параметр -c, позволяющий задать количество выводимых байтов, параметр -q, позволяющий не добавлять информацию об именах файлов в вывод с их начальными строками, параметр -v, позволяющий всегда выводить информацию об именах файлов, а также параметр -z, позволяющий выводить символы завершения строк вместо символов перехода на новые строки (это полезно для использования утилиты со стороны других утилит).
Для вывода первых десяти строк текстового файла достаточно использовать утилиту head без каких-либо параметров:
$ head 1342.txt
PRIDE AND PREJUDICE
By Jane Austen
Chapter 1
It is a truth universally acknowledged, that a single man in possession
Очевидно, что утилита вывела первые 10 строк файла.
Для вывода заданного количества строк текстового файла следует использовать параметр -n:
$ head -n 3 1342.txt
PRIDE AND PREJUDICE
By Jane Austen
Теперь утилита вывела лишь необходимые три строки.
Для того, чтобы вывести заданное количество байтов вместо заданного количества строк, достаточно использовать параметр -c таким же образом, как ранее использованный параметр -n:
$ head -c 23 1342.txt
PRIDE AND PREJUDICE
В первые 23 байта вошла первая строка текстового файла с символом перехода на новую строку.
Для того, чтобы вывести лишь первые строки вывода другой утилиты, достаточно использовать простой конвейер командной оболочки и не указывать имен файлов:
$ cat 1342.txt | head -n 3
PRIDE AND PREJUDICE
By Jane Austen
Утилита cat читает все содержимое текстового файла, а утилита head выполняет роль фильтра, выводя лишь три первые строки этого содержимого.
$ head -n 3 1342.txt 74.txt
==> 1342.txt <==
PRIDE AND PREJUDICE
By Jane Austen
==> 74.txt <==
THE ADVENTURES OF TOM SAWYER
By Mark Twain
Теперь утилита добавляет в вывод имена текстовых файлов для того, чтобы не возникало путаницы; в остальном она работает точно так же.