Как сделать

Как писать команды и скрипты AWK

Графический дизайнер работает допоздна за компьютером в офисе

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

Графический дизайнер работает допоздна за компьютером в офисе
Изображения героя / Getty Images

Основы AWK

Основной формат команды awk выглядит следующим образом:

awk 'pattern {action}' input-file> output-file

Это означает: взять каждую строку входного файла; если строка содержит шаблон, примените действие к строке и запишите полученную строку в выходной файл. Если шаблон не указан, действие применяется ко всем строкам. Например:

awk '{print $ 5}' table1.txt> output1.txt

Вышеприведенный оператор берет элемент 5-го столбца каждой строки и записывает его в виде строки в выходной файл «output.txt». Переменная «$ 4» относится к четвертому столбцу. Точно так же вы можете получить доступ к первому, второму и третьему столбцам, используя $ 1, $ 2, $ 3 и т. Д. По умолчанию предполагается, что столбцы разделены пробелами или табуляцией (так называемый пробел). Итак, если входной файл «table1.txt» содержит эти строки:

1, Джастин Тимберлейк, Название 545, Цена 7,30 $ 
2, Тейлор Свифт, Название 723, Цена 7,90 $
3, Мик Джаггер, Название 610, Цена 7,90 $
4, Леди Гага, Название 118, Цена 7,30 $
5, Джонни Кэш, Название 482, Цена 6,50 $
6, Элвис Пресли, Название 335, Цена 7,30 доллара США
7, Джон Леннон, Название 271, Цена 7,90 доллара США
8, Майкл Джексон, Название 373, Цена 5,50 доллара США

Затем команда записывает следующие строки в выходной файл «output1.txt»:

545, 
723,
610,
118,
482,
335,
271,
373,

Если разделитель столбцов отличается от пробелов или табуляций, таких как запятая, вы можете указать это в выражении awk следующим образом:

awk -F, '{print $ 3}' table1.txt> output1.txt

Это выберет элемент из столбца 3 каждой строки, если столбцы считаются разделенными запятой. Следовательно, результат в этом случае будет:

Название 545 
Название 723
Название 610
Название 118
Название 482
Название 335
Название 271
Название 373

Условные выражения в AWK

Список операторов внутри фигурных скобок (‘{‘, ‘}’) называется блоком. Если вы поместите условное выражение перед блоком, оператор внутри блока будет выполнен, только если условие истинно.

awk '$ 7 == "\ $ 7.30" {print $ 3}' table1.txt

В этом случае условие равно $ 7 == «\ $ 7.30», что означает, что элемент в столбце 7 равен $ 7.30. Обратная косая черта перед знаком доллара используется для предотвращения интерпретации системой $ 7 как переменной и вместо этого буквально воспринимает знак доллара.

Таким образом, этот оператор awk выводит элемент в 3-м столбце каждой строки, который имеет «7,30» в столбце 7.

Вы также можете использовать регулярные выражения в качестве условия. Например:

awk '/ 30 / {print $ 3}' table1.txt

Строка между двумя слешами (‘/’) является регулярным выражением. В данном случае это просто строка «30». Это означает, что если строка содержит строку «30», система печатает элемент в 3-м столбце этой строки. Выход в приведенном выше примере будет выглядеть так :

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone