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