AWK примеры использования

AWK - интерпретируемый скриптовый C- подобный язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам. Утилита AWK, была создана в 1977 году и объединила свойства фильтров Редактор sed и GNU grep. В дальнейшем её возможности значительно расширились. Одним из расширений awk стала nawk, с помощью которой можно обращаться к нескольким файлам в одной программе. Gawk - следующий этап развития awk, в ней реализованы как возможности nawk, так и стандартные средства awk.

AWK рассматривает входной поток как список записей. Каждая запись делится на поля. На основе этой информации выполняется некоторый определённый программистом алгоритм обработки. По умолчанию разделителем записей является символ новой строки (то есть записи — это то же самое, что строки), разделителем полей - символ пробела или табуляции, или последовательность таких символов. Символы-разделители можно явно определить в программе.

AWK- программа состоит из операторов (правил), имеющих вид:

 шаблон {действие}
 шаблон {действие}
 . . .

Каждая запись поочерёдно сравнивается со всеми шаблонами, и каждый раз когда она соответствует шаблону, выполняется указанное действие. Если шаблон не указан, то действие выполняется для любой записи. Если не указано действие, то запись выводится.

Действие может состоять из последовательности операторов, разделяемой точкой с запятой, переводом строки или закрывающей скобкой.

Примеры использования AWK

  • Печать всех строк длиннее 80 символов:
    $ cat install.sh | awk '{if (length($0) > 80) print $0}'
  • Вывести пятое поле из вывода команды netstat:
    $ netstat -ntu | awk '{print $5}'
  • Вывести строки, в которых значение первого столбца равно udp:
    # netstat -ntu | awk '$1 == "udp"'
  • Завершить процесс node (слушающему Порты TCP -порт 1277) по его PID:
    #!/bin/bash
    kill -9 `lsof -i:1277 | awk '$0 ~ /node/ {print $2}'`
  • Вывести третью строку из файлы .bash_history
    # awk 'NR==3{print}' .bash_history

Список статей по использованию AWK

  • Крупнейшая в Европе школа английского языка

    Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!

    skyeng.ru
  • Английский для IT‑специалистов по Skype

    Персональные занятия по разумным ценам. Длительность курса: 50 уроков по 50 минут. Управляй расписанием занятий через мобильное приложение!

    englex.ru
  • EnglishDom IT