Linux. awk

AWK штука очень полезная при работе с линуксом в консоли. С её помощью можно обрабатывать текстовые файлы без написания сложных скриптов. Можно, конечно, и на самом awk написать скрипт, но, по-моему, его лучше использовать в режиме командной строки с небольшими цепочками действий.

Если надо привести все строки в файле к нижнему регистру:

Если есть файл с данными о пользователях и надо вытащить часть информации:

В этом примере для каждого пользователя в файле хранится емейл, имя и фамилия. На выходе получаем файл с емейлами пользователей.

Конкатенация строк производится через пробел (a = $1 $2), а сложение чисел через плюс (a = $1 + $2). Ещё доступны операции =, +=, -=, *=, /=, %=, /, %, ++, —, сравнение чисел (если оба операнда числа) и строк по <, <=, ==, !=, >=, >, а также логические операции !, ||, &&.
Доступны массивы (ary[idx] = value). Объявлять не требуется.
Если нужно отфильтровать строки по какому-то признаку, надо использовать /признак/ (регулярка):

Получение емейлов только в зоне .net:

Встроенные функции:

Кратко и доступно про awk.

2 комментария

  1. Скажу по секрету — заметки подобного плана и разделение по категориям и тегам задуманы именно для того, чтобы отказаться от избранного и иметь возможность быстро найти нужное в одном месте. 😉

Leave a Reply

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.