Команда head

Команда 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

Теперь утилита добавляет в вывод имена текстовых файлов для того, чтобы не возникало путаницы; в остальном она работает точно так же.