Приклад 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
