Команды head и tail

10.1.3 Команды head и tail

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

Например, следующая команда отображает первые десять строк файла /etc/sysctl.conf:

sysadmin@localhost:~/Documents$ cd
sysadmin@localhost:~$ head /etc/sysctl.conf
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables
# See sysctl.conf (5) for information.
#

#kernel.domainname = example.com

# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3

Передача числа в качестве параметра приведет к тому, что команды headи tailвыведут указанное количество строк вместо стандартных десяти. Например, чтобы отобразить последние пять строк файла, /etc/sysctl.confиспользуйте -5опцию:

sysadmin@localhost:~$ tail -5 /etc/sysctl.conf
# Protects against creating or following links under certain conditions
# Debian kernels have both set to 1 (restricted)
# See https://www.kernel.org/doc/Documentation/sysctl/fs.txt
#fs.protected_hardlinks=0
#fs.protected_symlinks=0

Параметр -nтакже может использоваться для указания количества строк для вывода. Передайте число в качестве аргумента опции:

sysadmin@localhost:~$ head -n 3 /etc/sysctl.conf
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables

Вариант с отрицательным значением

Традиционно в UNIX количество строк для вывода указывалось в качестве параметра любой команды, что -3означало отображение трех строк. Для tailкоманды «или -3» или « -n -3по-прежнему» означает «показать три строки».

Однако версия команды GNU headраспознает -n -3как показать все, кроме последних трех строк , и все же headкоманда по-прежнему распознает параметр -3как показать первые три строки.

Опция положительного значения

Версия команды GNU tailпозволяет по-разному указывать количество строк для печати. Если -nпараметр используется с числом, перед которым стоит знак плюс, то tailкоманда распознает это как отображение содержимого, начиная с указанной строки и продолжая до конца.

Например, следующее отображает содержимое строки /etc/passwdот 25до конца файла:

sysadmin@localhost:~$ nl /etc/passwd | tail -n +25
    25  sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
    26  operator:x:1000:37::/root:/bin/sh
    27  sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin:/bin/bash

Last updated