Очень короткая заметка про tail и head. Как известно head и tail работают с началом и концом документа соответственно. Но бывает необходимость получить все строки, кроме, например первых трех, или наоборот кроме последних 3.
Приведу пример работы, вот простой файл:
Приведу пример работы, вот простой файл:
cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"Получим из него все строки, кроме первой:
user@Ubuntu:~$ tail -n+2 /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"А теперь все кроме последних двух:
user@Ubuntu:~$ head -n+3 /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trustyИ живой пример использования, нужно получить из netstat количество соединений сгруппированных по типу, исключив первые 2 строки заголовка:
user@Ubuntu:~$ netstat -ant | tail -n +3 | awk '{print $6}' | sort | uniq -c 1 CLOSE_WAIT 34 ESTABLISHED 8 LISTEN 2 SYN_SENTИли для удобства в цикле:
user@Ubuntu:~$ while true; do netstat -ant | tail -n +3 | awk '{print $6}' | sort | uniq -c; echo -----------; sleep 1; done 1 CLOSE_WAIT 32 ESTABLISHED 8 LISTEN ----------- 1 CLOSE_WAIT 32 ESTABLISHED 8 LISTEN ----------- ^CОстановить цикл можно клавишами Ctrl+c.
Комментариев нет:
Отправить комментарий