Пример 1: Вывод определенных строк по их номерам с помощью команды sed
Команда позволяет просматривать только нужные строки под определенными номерами, которые явным образом описываются.
Синтаксис:
- $ sed -n -e Xp -e Yp FILENAME
В примере ниже выводятся строки 120, 145, 1050 файла syslog.
- $ sed -n -e 120p -e 145p -e 1050p /var/log/syslog
В следующем примере вы можете просмотреть содержимое файла var/log/cron, начиная со строки номер 101, заканчивая строкой номер 110.
Синтаксис:
- sed -n M,Np FILENAME
- $ sed -n 101,110p /var/log/cron
Пример 2: Вывод первых N строк файла с помощью команды head
В этом примере выводятся первые 15 строк файла /var/log/maillog.
Синтаксис:
- head -n N FILENAME
- $ head -n 15 /var/log/maillog
Чтобы вывести первые 10 строк лога, поменяйте в примере 15 на 10.
Пример 3: Не выводить последние N строк файла с помощью команды head
В этом примере показано, как игнорировать последние N строк и показывать только оставшиеся строки с начала файла.
Синтаксис:
- head -n -N FILENAME
Пример показывает, как можно вывести все строки файла /var/log/secure, кроме последних 250.
- $ head -n -250 /var/log/secure
Пример 4: Вывод последних N строк файла с помощью команды tail
Синтаксис: tail -n N FILENAME
В этом примере выводятся только последние 50 строк файла /var/log/messages. Чтобы вывести на экран последние 100 строк лога, поменяйте 50 на 100.
- $ tail -n 50 /var/log/messages
Пример 5: Не выводить первые N-1 строк файла с помощью команды tail
С помощью этой команды можно игнорировать первые N-1 строк и показывать только оставшиеся строки.
Синтаксис:
- tail -n +N FILENAME
В этом примере показано, как игнорировать первые 4 строки файла /etc/xinetd.conf, в котором содержатся только комментарии.
- $ tail -n +5 /etc/xinetd.conf
- defaults
- {
- instances = 60
- log_type = SYSLOG authpriv
- log_on_success = HOST PID
- log_on_failure = HOST
- cps = 25 30
- }
- includedir /etc/xinetd.d
Пример 6: Просмотр увеличивающегося лога в реальном времени с помощью команды tail
Наверное, это одна из наиболее часто используемых сисадминами команд. Для просмотра увеличивающегося файла и вывода только обновленного содержимого лога, используйте команду tail -f как показано ниже.
В следующем примере выводится в реальном времени содержимое файла /var/log/syslog.
Синтаксис:
- tail -f FILENAME
- $ tail -f /var/log/syslog
Пример 7: Вывод определенных строк (по номеру строки) с помощью команд head и tail
Синтаксис:
- cat file | tail -n +N | head -n (M-N+1)
В примере ниже выводятся строки 101 – 110 файла /var/log/anaconda.log
- $ cat /var/log/anaconda.log | tail -n +101 | head -n 10
Пример 8: Вывод строк, совпадающих с шаблоном, а также нескольких строк, следующих сразу за совпадающими.
В следующем примере показано, как вывести строки, совпадающие с шаблоном «Initializing CPU», из файла /var/log/dmesg, а также 5 строк, следующих сразу за ними.
- # grep "Initializing CPU#1" /var/log/dmesg
- Initializing CPU#1
[Внимание: эта команда выводит только строки, совпадающие с шаблоном]
- # grep -A 5 "Initializing CPU#1" dmesg
- Initializing CPU#1
- Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
- CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
- CPU: After vendor identify, caps: bfebfbff 20100000 00000000 00000000
- monitor/mwait feature present.
- CPU: L1 I cache: 32K, L1 D cache: 32K
[Внимание: эта команда выводит совпадающую строку и 5 строк после нее]
С командой grep также доступны следующие операции:
Пример 9: Вывод определенных байтов из файла.
В следующем примере показано, как вывести либо первые 40, либо последние 30 байтов файла.
Вывод первых 40 байтов файла syslog.
- $ head -c40 /var/log/syslog
Вывод последних 30 байтов файла syslog.
- $ tail -c30 /var/log/syslog
Пример 10: Просмотр сжатых логов.
Через определенный промежуток времени все системные логи сжимаются. Вы можете распаковать их «на лету» и обработать результат с помощью другой команды. Как это сделать, показано ниже.
Вывод первых N строк сжатого файла.
- $ zcat file.gz | head -250
Вывод последних N строк сжатого файла.
- $ zcat file.gz | tail -250
Игнорирование последних N строк сжатого файла.
- $ zcat file.gz | head -n -250
Игнорирование первых N строк сжатого файла.
- $ zcat file.gz | tail -n +250
Просмотр строк, совпадающих с шаблоном
- $ zcat file.gz | grep -A2 'error'
Просмотр набора строк по указанному диапазону их номеров .
- $ zcat file.gz | sed -n -e 45p -e 52p
