Главная >> Команды >> Команда head linux

Команда head linux

Команда head выводит начальные строки (по умолчанию — 10)  из одного или нескольких документов. Также она может показывать данные, которые передает на вывод другая утилита.

Сегодня мы расскажем как работает эта команда для Linux и покажем, как используются на практике наиболее популярные опции head.


Содержание статьи

Команда head в Linux

Синтаксис у команды head следующий:

$ head опции файл

Здесь:

  • Опции — это параметр, который позволяет настраивать работу команды таким образом, чтобы результат соответствовал конкретным потребностям пользователя.
  • Файл — это имя документа (или имена документов, если их несколько). Если это значение не задано либо вместо него стоит знак «-», команда будет брать данные из стандартного вывода.

Чаще всего к команде head применяются такие опции:

  • -c (--bytes) — позволяет задавать количество текста не в строках, а в байтах. При записи в виде --bytes=[-]NUM выводит на экран все содержимое файла, кроме NUM байт, расположенных в конце документа.
  • -n (--lines) — показывает заданное количество строк вместо 10, которые выводятся по умолчанию. Если записать эту опцию в виде --lines=[-]NUM, будет показан весь текст кроме последних NUM строк.
  • -q (--quiet, --silent) — выводит только текст, не добавляя к нему название файла.
  • -v (--verbose) — перед текстом выводит название файла.
  • -z (--zero-terminated) — символы перехода на новую строку заменяет символами завершения строк.

Переменная NUM, упомянутая выше — это любое число от 0 до бесконечности, задаваемое пользователем. Оно может быть обычным либо содержать в себе множитель.

Примеры использования head

Самый простой способ использования команды head — с указанием имени файла, но без опций. В таком случае будут выведены на экран первые 10 строк.

head file-name.txt

Если нужно единовременно получить вывод с нескольких файлов, с этим тоже не возникнет проблем. Достаточно перечислить названия, разделяя их пробелом:

head file-name1.txt file-name2.txt

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

Чтобы название файла выводилось даже в том случае, когда команде задан только один документ, следует воспользоваться опцией -v:

head -v file-name.txt

Если десяти строк, по умолчанию выводимых командой, окажется слишком мало или слишком много, ничто не мешает изменить их количество вручную. Для этой цели служит опция -n:

head -n file-name.txt

Не будем забывать об еще одном интересном свойстве этой опции. Она позволяет вывести то количество строк, которое останется после «отсечения» лишнего текста. Для этого нужно использовать не сокращенную (однобуквенную), а полную запись опции:

head --lines=[-]NUM

Во время работы в терминале квадратные скобки не используются, знак минуса идет сразу же после знака равно. Вместо NUM следует указать число. Вот как выглядит запись команды и ее результат на скриншоте.

Следует заметить, что строки «отсекаются», начиная с последней.

До этого момента мы (и команда head вместе с нами) считали количество текста построчно. Но это не обязательное условие — с таким же успехом единицей измерения может быть байт. Достаточно сообщить команде о новом правиле работы с помощью опции -с, заодно указав и количество байт, которое нужно вывести на экран (NUM):

head -c NUM file-name.txt

Как и в случае с опцией --lines, можно «отсечь» ненужный объем текста, используя полную форму опции -с — --bytes. Запись команды проводится по тому же принципу и лишние байты тоже отсчитываются, начиная с конца документа:

head --bytes=[-]NUM

При записи байт можно использовать буквенные суффиксы:

  • b — умножает число на 512.
  • kB — на 1000.
  • k — на 1024.
  • MB — на 1 000 000.
  • M — на 1 048 576.

Кстати, команду head можно использовать не только самостоятельно, но и в сочетании с другими командами. Например, такая запись хеширует рандомно выбранную переменную среды, выводит первые 32 байта из указанного файла и отображает случайную строку из 24 символов:

echo $RANDOM | sha512sum | head -c 24 file-name.txt; echo

На этом наши примеры head linux подошли к завершению.

Выводы

Команда head linux, которая выводит начальные строки файла, - это в некотором роде антагонист команды tail (она печатает в терминале последние строки). Поскольку ее синтаксис довольно прост, у пользователей, как правило, не возникает проблем с использованием этой команды. Если у вас появились вопросы или замечания по части команды head и ее применения в Linux-системах, обязательно оставьте комментарий внизу.

2 комментария к “Команда head linux”

  1. Спасибо. И есть вопрос: как вывести одновременно 25 первых строк файла, а следом 5 последних строк файла.? Pipeline отрезает от первых 25 (head -n 25) , 5 указанных (tail -n 5) . А надо 25 плюс 5 получить.
    Т.е не работает: head -n 25 | tail -n 5 testfile

    Ответить

Оставьте комментарий