Awk – это язык программирования, включенный в Linux и используемый для  контекстного поиска и преобразования текста. В обычной жизни используется чтобы упростить жизнь ленивого умного системного администратора при поиске информации текстовом файле.
Вот простые  примеры использования awk:

Пример ниже показывает, как команда awk проводит манипуляции со строкой, чтобы получить необходимые данные. Ниже показан обычный вывод команды ‘ls -l’. Он содержит 9 столбцов, разделенных пробелами.

viktor@viktor:~/test$ ls -l
итого 20
-rw-rw-r– 1 viktor viktor 2460 апр 3 02:22 domains
-rw-rw-r– 1 viktor viktor 2460 янв 23 22:32 ipaddress
-rw-rw-r– 1 viktor viktor 2460 фев 13 10:22 lists
-rw-rw-r– 1 viktor viktor 2460 мар 10 2016 servers
-rw-rw-r– 1 viktor viktor 2460 апр 24 13:08 test
Воспользуемся командой awk чтобы напечатать столбцы с 6 по 9:

awk ‘{print $6,$7,$8,$9}’

viktor@viktor:~/test$ ls -l | awk ‘{print $6,$7,$8,$9}’

апр 3 02:22 domains
янв 23 22:32 ipaddress
фев 13 10:22 lists
мар 10 2016 servers
апр 24 13:08 test

Отсортируем вывод по месяцам с помощью ключа  -M:
viktor@viktor:~/test$ ls -l | awk ‘{print $6,$7,$8,$9}’ | sort -M

янв 23 22:32 ipaddress
фев 13 10:22 lists
мар 10 2016 servers
апр 24 13:08 test
апр 3 02:22 domains

Заменим пробелы на знак “тире”
viktor@viktor:~/test$ ls -l | awk ‘{print $6 “-” $7 “-” $8 “-” $9}’

апр-3-02:22-domains
янв-23-22:32-ipaddress
фев-13-10:22-lists
мар-10-2016-servers
апр-24-13:08-test

Пример поиска и удаления файлов с помощью команд awk и grep

ls -l | grep “2016” | awk ‘{print $9}’ | echo $(xargs)

viktor@viktor:~/test$ ls -l | grep “2016” | awk ‘{print $9}’ | echo $(xargs)
servers

ls -l | grep “2016” | awk ‘{print $9}’ | rm -f $(xargs)

Перед удалением файла используем команду echo чтобы проверить, какие файлы фильтруется с помощью команды grep, а rm -f будет выполнять удаление без запроса.
Будьте внимательны при тестировании не используйте реальные данные во избежании их потери!

Примеры использования команды awk
Метки:         

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *