Иногда, при работе в командной строке в Linux, вы можете быстро посмотреть на несколько начальных строк файла. Например, если файл журнала постоянно обновляется, вы можете посмотреть, скажем, первые 10 строк файла журнала каждый раз. При просмотре файла в редакторе (как Vim) всегда существует вариант, как инструмент командной строки – это head – позволяет очень легко просматривать начальные несколько строк файла.
В этой статье мы обсудим основу команды head, используя некоторые легко понятные примеры. Пожалуйста, обратите внимание, что все шаги/инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04LTS.
Команда head в Linux
Как уже упоминалось в начале, команды Head позволяет пользователям просматривать первую часть файлов. Вот его синтаксис:
head [OPTION]... [FILE]...
И следующее, как man page описывает команду head:
Печатает первые 10 строк каждого ФАЙЛА на стандартный вывод. С более чем один ФАЙЛ, перед каждым заголовком идет имя файла.
Следующие примеры должны дать вам лучшее представление о том, как работает инструмент:
Q1. Как напечатать первые 10 строк файла на терминале (стандартный вывод)?
Это довольно легко, используя head – на самом деле, это поведение по умолчанию для инструмента.
head [file-name]
На следующем примере показана команда в действии:
root@destroyer:/etc/nginx# head nginx.conf user www-data; worker_processes 3; error_log /var/log/nginx/error.log notice; worker_rlimit_nofile 65535; pid /var/run/nginx.pid; events {
Q2. Как настроить вывод определенного количество линий с помощью команды head?
В то время как 10 строк является по умолчанию, которое команда head печатает, вы можете изменить это число в соответствии с вашими требованиями. опция -n командной строки позволяет сделать это.
head -n [N] [File-name]
Например, если вы хотите напечатать только первые 5 строк, вы можете передать в этот инструмент следующим образом:
head -n 5 file1
root@destroyer:/etc/nginx# head -n 5 nginx.conf user www-data; worker_processes 3; error_log /var/log/nginx/error.log notice;
Q3. Как ограничить вывод определенного количества байтов?
Не только количество строк, вы можете также ограничить вывода команды head на определенное число байтов. Это может быть сделано с помощью параметра -c командной строки.
head -c [N] [File-name]
Например, если вы хотите, чтобы отображались только первые 25 байт, то вот как вы можете выполнить его:
head -c 25 file1
root@destroyer:/etc/nginx# head -c 25 nginx.conf user www-data;
Таким образом, вы можете увидеть, что инструмент отображает только первые 25 байт в выводе.
Пожалуйста, обратите внимание, что [N] ” может иметь суффикс множитель: б 512, кбайт 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, и так далее для Т, Р, Е, Z, Y «.
Q4. Как напечатать и имя файла на выводе?
Если по какой-то причине, вы хотите, чтобы команда head также напечатала имя файла на выводе, вы можете сделать это с помощью опции -v командной строки.
head -v [file-name]
Вот пример:
root@destroyer:/etc/nginx# head -c 25 nginx.conf user www-data; worker_proroot@destroyer:/etc/nginx# head -v nginx.conf ==> nginx.conf <== user www-data; worker_processes 3; error_log /var/log/nginx/error.log notice; worker_rlimit_nofile 65535; pid /var/run/nginx.pid; events {
Как вы можете видеть, имя файла «файл 1» был указан на выводе.
Q5. Как указать NUL разделитель в линии, вместо новой строки?
По умолчанию, вывод команды head ограничен новой строки. Но есть также возможность использования NUL в качестве разделителя. Опция -z или –zero-terminated позволяет сделать это.
head -z [file-name]
Вывод
Как большинство из вас согласятся, что простая команда head, понятна и ее легко использовать. Функции (в терминах параметров командной строки), которые она предлагает также ограничены, и мы рассмотрели почти все из них.