В Linux команда head
, как следует из названия, выводит первые N данных заданного ввода. По умолчанию утилита печатает первые 10 строк указанных файлов.
Содержание
Синтаксис
head [ПАРАМЕТР]… [ФАЙЛ]…
Печатает первые 10 строк каждого ФАЙЛА на стандартный вывод. Если задано несколько ФАЙЛОВ, сначала печатает заголовок с именем файла.
Опции
- -c, --bytes=[-]K
- Вывести первые K байт каждого файла; если перед K стоит
-
, напечатать все, кроме K последних байт каждого файла - -n, --lines=[-]K
- Вывести K строк каждого файла, а не первые 10; если перед K стоит
-
, напечатать все, кроме K последних строк каждого файла - -q, --quiet, --silent
- Не выводить заголовки с именами файлов
- -v, --verbose
- Всегда выводить заголовки с именами файлов
- -z, --zero-terminated
- Разделитель строк NUL, а не символ новой строки
После K может стоять один из умножающий суффиксов: 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. Также можно использовать двоичные префиксы: KiB=K
, MiB=M
и так далее.
Примеры использования команды head в Linux
Для рассмотрения простейших примеров применения команды head
были созданы 2 файла, каждый из 50 строк:
- usa-states.txt
- Названия штатов США
- usa-capitals.txt
- Названия столиц штатов США
Использование без опций
При использовании команды head
без опций она выводит первые 10 строк заданного файла:
oleg@mobile:~:$ head usa-states.txt
Айдахо
Айова
Алабама
Аляска
Аризона
Арканзас
Вайоминг
Вашингтон
Вермонт
Виргиния
oleg@mobile:~:$
Можно выводить результат и нескольких файлов, перечисляя их через пробел:
oleg@mobile:~:$ head usa-states.txt usa-capitals.txt
==> usa-states.txt <==
Айдахо
Айова
Алабама
Аляска
Аризона
Арканзас
Вайоминг
Вашингтон
Вермонт
Виргиния
==> usa-capitals.txt <==
Бойсе
Де-Мойн
Монтгомери
Джуно
Финикс
Литл-Рок
Шайенн
Олимпия
Монтпилиер
Ричмонд
oleg@mobile:~:$
Были выведены по 10 первых строк двух файлов.
Вывод определённого числа строк
В этом случае используется опция -n
, к которой через пробел добавляется число строк, необходимых для вывода:
oleg@mobile:~:$ head -n 5 usa-states.txt usa-capitals.txt
==> usa-states.txt <==
Айдахо
Айова
Алабама
Аляска
Аризона
==> usa-capitals.txt <==
Бойсе
Де-Мойн
Монтгомери
Джуно
Финикс
oleg@mobile:~:$
Были выведены по 5 первых строк двух файлов.
Вывод определённого числа байтов
В данном случае используется опция -c
, к которой через пробел добавляется число байтов, необходимых для вывода:
oleg@mobile:~:$ head -c 25 usa-states.txt usa-capitals.txt
==> usa-states.txt <==
Айдахо
Айова
�
==> usa-capitals.txt <==
Бойсе
Де-Мойн
oleg@mobile:~:$
Вывод строк нескольких файлов
При использовании опции -q
строки выводятся без названий файлов и пробельных строк:
oleg@mobile:~:$ head -q usa-states.txt usa-capitals.txt
Айдахо
Айова
Алабама
Аляска
Аризона
Арканзас
Вайоминг
Вашингтон
Вермонт
Виргиния
Бойсе
Де-Мойн
Монтгомери
Джуно
Финикс
Литл-Рок
Шайенн
Олимпия
Монтпилиер
Ричмонд
oleg@mobile:~:$
Заключение
В Linux команда head
является достаточно простой. Начинающие пользователи не будут иметь с ней никаких проблем. Её можно использовать также и в конвейере, но это уже выходит за рамки данной короткой статьи о простейших примерах применения этой утилиты.