====== Команды фильтры ======
===== cut =====
* [[https://ru.wikipedia.org/wiki/Cut|cut — команда выборки отдельных полей из строк файла]]
* [[http://unix.stackexchange.com/questions/35369/how-to-cut-by-tab-character|How to cut by tab character]]
$ cut -d: -f1,7 /etc/passwd
$ cut -c1-5 /etc/passwd
$ cat /etc/passwd | rev | cut -c 2- | rev #remove last character
===== tr =====
* [[https://ru.wikipedia.org/wiki/Tr|translate или transliterate — Unix-утилита для преобразования символов]]
* MySQL запросы [[Сервис MySQL#Из командной строки]]
$ cat /etc/passwd | tr ':' ' '
$ df -h / | tr -s ' '
$ getent group group1 | cut -f4 -d: | tr "," "\n"
$ echo "{\"hw_id\":\"2\",\"hw_name\":\"router\"}" | tr -d '{}\\'
===== sort =====
* [[https://ru.wikipedia.org/wiki/Sort|sort — UNIX‐утилита, выводящая сортированное слияние указанных файлов]]
Ключи -n -r -u -kN
$ sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 addresses.txt
===== uniq =====
* [[https://ru.wikipedia.org/wiki/Uniq|uniq — утилита Unix, с помощью которой можно вывести или отфильтровать повторяющиеся строки]]
Cм. пример с grep
===== grep =====
[[http://ru.wikipedia.org/wiki/Grep]]
$ grep root /etc/passwd
$ grep -i Root /etc/passwd
$ grep '^root' /etc/passwd
$ grep 'sh$' /etc/passwd
Ключ -r - рекурсивный перебор подкаталогов
$ grep -r '\' /usr/share
Ключ -v - показать строки, не совпадающие с шаблоном
FreeBSD
/usr/local/etc/apache/httpd.conf
Linux
/etc/apache2/apache2.conf
/etc/apache2/sites-available/default-ssl
$ grep -v '^#' file
$ grep -v '^ *#' file
$ grep -v '^ *#\|^$' file
$ grep "^[^#]" /etc/ssh/sshd_config
Ключ -E - использовать расширенные регулярные выражения
$ grep -vE '^ *#|^$' file
===== Примеры использования =====
* [[Авторизация доступа к ресурсам через SQUID]]
==== Статистика посещений за день ====
# fgrep '05/Dec/2011' /opt/local/apache2/logs/access_log | cut -f1 -d' ' | sort -u | wc -l
==== Вывод списка ip адресов из файла ====
* [[https://stackoverflow.com/questions/14928573/sed-how-to-extract-ip-address-using-sed|sed - How to extract IP address using sed?]]
* Генератор отчетов awk [[Генератор отчетов awk#Выбор строк по числовому условию]]
# cat /var/log/auth.log | grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])' | sort | uniq -c | sort -n