Awk

10 замечательных примеров команд Awk

10 замечательных примеров команд Awk
Команда awk - мощный инструмент для обработки данных. Он получает входные данные, манипулирует ими и выдает результаты в стандартном выводе. Над строками и столбцами файла можно выполнять различные операции.

Знание основ команды «awk» очень важно, когда дело доходит до эффективной обработки данных, и этот пост охватывает ключевые особенности команды «awk». Давайте сначала проверим синтаксис:

$ awk [параметры] [файл]

Некоторые из наиболее часто используемых параметров приведены в таблице ниже:

Вариант Описание
-F Чтобы указать разделитель файлов
Укажите файл, содержащий сценарий «awk»
-v Чтобы присвоить переменную

Давайте рассмотрим несколько примеров использования команды «awk», и для демонстрации я создал текстовый файл с именем testFile.текст:

1. Как распечатать столбец файла с помощью команды awk?

Команду «awk» можно использовать для получения определенного столбца текстового файла. Чтобы распечатать содержимое файла, используйте:

$ cat testFile.текст

Теперь, чтобы распечатать второй столбец файла, используйте:

$ awk 'print $ 2' testFile.текст

Чтобы распечатать более одного поля, используйте команду:

$ awk 'print $ 1, $ 2, $ 3' testFile.текст

Если вы не используете запятую «», то вывод будет без пробелов:

$ awk 'print $ 1 $ 2 $ 3' testFile.текст

2. Как использовать регулярное выражение с командой awk:

Чтобы сопоставить строки или любое выражение, мы используем косую черту «//», например, если вы хотите напечатать имена людей, изучающих «Историю», используйте:

$ awk '/ History / print $ 2' testFile.текст

Результат ясно показывает, что только «Сэм» и «Томми» изучают курс «История».

3. Как использовать выражение отношения с командой «awk»:

Чтобы соответствовать содержимому определенного поля, можно использовать реляционное выражение. Чтобы сопоставить любую строку или выражение с полем, укажите поле и используйте оператор сравнения «~» с шаблоном, представленным в следующей команде:

$ awk '$ 3 ~ / is / print $ 2' testFile.текст

Приведенный выше вывод отображает каждое поле в столбце 2 по сравнению с каждым полем, содержащим «есть» в столбце 3.

И чтобы получить результат, противоположный приведенной выше команде, используйте «! ~ »Оператор:

$ awk '$ 3! ~ / is / print $ 2 'testFile.текст

Для сравнения мы также можем использовать такие операторы, как «больше» и «меньше»<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.текст

На выходе напечатаны имена людей, получивших оценки более 70 баллов.

4. Как использовать шаблон диапазона с командой awk:

Диапазон также можно использовать для поиска; просто используйте запятую «,» для разделения диапазона, как показано в приведенной ниже команде:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.текст

На выходе показаны объекты от «Джоэл» до «Марлен» из столбца 2. Мы можем использовать двойной знак равенства «==» для определения диапазона; см. пример ниже:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.текст

В выходных данных отображаются имена людей из столбца 2 для диапазона оценок от «70 до 80» из столбца 4.

5. Как скомбинировать паттерн с помощью логического оператора:

Использование логических операторов, таких как OR «||», И «&&», позволяет комбинировать шаблоны для поиска. Используйте следующую команду

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.текст

Вышеупомянутая команда печатает имена людей в четвертом поле, более значительном, чем 80, и шестом поле, превышающем 0.4. И только две записи удовлетворяют условию.

6. Специальные выражения команды awk:

Есть два специальных выражения: «НАЧИНАТЬ" а также "КОНЕЦ”:

НАЧАТЬ: выполнить действие до обработки данных

END: выполнить действие после обработки данных

$ awk 'BEGIN print «Обработка началась»; print $ 2; END print «Обработка завершена» 'testFile.текст

7. Полезная встроенная переменная команды awk:

Команда awk имеет различные переменные, которые помогают в обработке данных:

Переменная Описание
NF Он дает количество полей в данных
NR Выдает номер текущей записи
ИМЯ ФАЙЛА Отображает имя файла, который в данный момент обрабатывается
ФС и ОФС Разделитель полей и разделитель полей вывода
RS и ORS Разделяет запись и разделитель выходной записи

Например:

$ awk 'END print «Имя файла -« FILENAME », имеет поля« NF »и« NR «записей»' testFile.текст

Мы используем «КОНЕЦ», но если вы используете «НАЧАТЬ», на выходе будет 0 полей и 0 записей.

8. Как изменить разделитель записей:

Разделителем по умолчанию в записи обычно является пробел; если есть запятая «,» или точка «.»В качестве разделителя полей, затем используйте параметр« FS »вместе с разделителем.

У нас есть еще один файл, в котором поля данных разделены запятыми, двоеточиями «:»:

$ cat testFile2.текст
$ awk 'BEGIN FS = «:» print $ 2' testFile2.текст

Поскольку разделителем файла является двоеточие, а команда «awk» полезна даже для таких файлов, просто используйте параметр «FS».

«-F» также можно использовать:

$ awk -F «:» 'print $ 2' testFile2.текст

Разделителем записей по умолчанию является «новая строка», и чтобы установить разделитель записей на «:», используйте:

$ awk 'BEGIN RS = «:» print $ 1' testFile2.текст

9. Действия при отсутствии нагрузки:

Действия awk - это крошечные программы, заключенные в квадратные скобки «» и содержащие более одного оператора, разделенного точкой с запятой «;».

Наиболее часто используемый оператор с командой «awk» - это оператор «print». Например, чтобы напечатать текст с каждой записью, используйте текстовую строку в кавычках:

$ awk '"Это поле," $ 2' тестовый файл.текст

Давайте выполним простую операцию суммирования с помощью awk:

$ awk 'сумма + = $ 4 END printf «% d \ n», сумма' testFile.текст

10. Создание awk-программы:

Начнем с программирования «awk», приведенное ниже программирование просто выполняет умножение:

НАЧИНАТЬ
я = 2
в то время как (j<4)

print «Умножение 2 на« j »равно« i * j;
j++

Сохраните программу под названием «myCode.awk”И для его запуска откройте терминал и введите:

$ awk -f myCode.awk

Заключение:

Команда «awk» - это удобная команда для обработки и сканирования данных текстовых файлов, например для разделения любого конкретного поля файла; мы используем команду «awk». Это упрощает поиск чего-либо в любой форме или шаблоне из текстовых файлов. В этом руководстве мы понимаем основы команды «awk» и ее использование. Команда «awk» проверяет данные, генерирует отчеты и даже анализирует файлы. Использование простых команд «awk» также позволяет пользователям писать крошечные программы для более эффективной обработки данных.

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...