Изучите Linux

Команда Linux awk с 10 примерами

Команда Linux awk с 10 примерами

Компьютерные системы всегда использовались для анализа ценных данных, хранящихся в простых текстовых файлах. В свою очередь, сами компьютерные системы управляются через файлы журналов. Что потенциально является общим в этих двух ситуациях, так это то, что они содержат большой объем данных, которые часто необходимо оптимизировать перед фактическим чтением данных; в противном случае это просто сбивает с толку.

Например, если вы читаете некоторые данные, расположенные в табличной форме, вам нужны одни столбцы, а другие - нет.

Это требование было ужасным даже в свое время, и, следовательно, проект GNU содержит удивительный инструмент, который помогает пользователям фильтровать и извлекать данные для лучшего опыта. Этот инструмент AWK.

История

AWK - это на самом деле язык программирования, предназначенный для обработки текста. Он используется для извлечения данных в определенных шаблонах. Он был разработан в 1970-х годах в Bell Labs Альфредом Ахо, Питером Вайнбергером и Брайаном Керниганом (инициалы их фамилий дали начало имени). Развитие awk на этом не остановилось. Новая версия, представленная в 1985 году, внесла новые изменения в команду awk, включая возможность обрабатывать несколько входных потоков, вычисляемые регулярные выражения, определяемые пользователем функции и многое другое! Короче говоря, обновление сделало его более мощным языком программирования.

Awk имеет другую реализацию. Чтобы гарантировать, что существует правильная реализация, предлагающая стандартный подход, Пол Рубин написал gawk в 1986 году. Он хорошо работал с новым awk.

Кроме того, в выпуске System V 1989 года были добавлены новые функции. Разработчики также улучшили его темные углы, сделав его удобнее для программистов и пользователей. Последнее изменение произошло в 1997 году, когда в awk появился доступ к сети, что дало пользователям возможность решать проблемы удаленно.

Последний раз переписал в 2011 году, когда Джон Хак переписал внутренности gawk.

Что можно делать с AWK

К настоящему времени должно быть несколько ясно, на что способен AWK. Это язык сценариев общего назначения, который позволяет обрабатывать текст. Опытные пользователи также могут использовать его для анализа и отчетности.

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

Короче говоря, вы можете использовать AWK для выполнения простых операций, таких как разбиение каждой строки ввода на поля, сканирование файла по строкам, выполнение действий со строками совпадений и т. Д! Команда awk также полезна для отчетов в формате процедуры и преобразования файлов данных. Кроме того, вы также получаете доступ к программным конструкциям, таким как условные и циклы, строковые и арифметические операции, а также форматирование строк вывода.

Как работает awk

В этом разделе мы узнаем, как работает awk. Важно знать, что awk имеет разные реализации. Чтобы убедиться, что мы находимся на одной странице, мы будем обсуждать и использовать реализацию GNU, широко известную как gawk. В большинстве случаев gawk привязан к интерпретатору awk.

Чтобы получить хорошее представление, нам сначала нужно понять записи и поля.

Хорошо известно, что awk может обрабатывать текстовые потоки и файлы данных. Для обработки данных ввод делится на поля и записи. Чтобы гарантировать, что awk не будет перегружен, в любой момент времени обрабатывается одна запись, пока не будет достигнут конец ввода. Кроме того, записи делятся на простые разделы с использованием разделителя записей с использованием символов. Кроме того, каждая запись разделяется символами новой строки. Это означает, что каждую строку можно назвать записью.

Вы можете установить новый разделитель записей, используя переменную RS.

Далее идет разделитель полей. Как обычно, в каждой записи есть поля, и они разделяются разделителем полей. Разделителем полей может быть пробел, табуляция, символы новой строки и пробел. Кроме того, для ссылки на каждое поле используется символ $, тогда как номер поля начинается с 1. Это означает, что первое поле может быть обозначено как $ 1, а второе поле обозначено как $ 2. Таким образом, n-е поле можно обозначить как $ nf.

Программа awk

Второй аспект awk - это программа awk. Если вы хотите работать с awk, вам нужно написать программу, которая позволяет команде выполнять или обрабатывать текст. Программа awk предлагает множество функций с использованием правил и пользовательских функций. Правила работают с парой действий или одним шаблоном, и правила разделяются точкой с запятой или новой строкой.

Если вам интересно, программа awk будет выглядеть так, как показано ниже.

шаблон действие шаблон действие… 

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

Примеры команд awk

Теперь, когда у нас есть хорошее представление о команде awk и о том, как она работает, пришло время проверить некоторые из примеров команды awk.

Если вы никогда раньше не использовали awk, возможно, вы захотите узнать, что awk можно использовать с такими параметрами, как показано ниже:

файл программы awk options

Параметры, которые вы можете использовать с awk, включают следующее:

Пример 1: чтение сценариев AWK

Один из наиболее распространенных способов использования awk - это чтение скриптов. Как пользователь Linux, вы можете создать скрипт awk, используя одиночные кавычки.

Для этого вам нужно ввести следующую команду в терминале.

$ awk 'print "Welcome to Hello, World - AWK tutorial"'

В приведенном выше примере то, что вы вводите, будет возвращено на сам экран. Команда будет продолжать выполняться, пока вы не завершите ее нажатием CTRL + D.

Пример 2: Использование нескольких команд

Еще одно распространенное использование awk - использование нескольких команд. Как пользователь, вы можете объединить две команды awk в одну, чтобы получить желаемый результат. В этом примере мы выведем строку, а затем заменим второе слово в строке новым вводом.

$ echo "Hello World" | awk '$ 2 = "Вселенная; распечатать $ 0"'

В приведенном выше примере мы сначала повторили "Hello, World" на терминал. Затем мы объединили еще одну команду awk, в которой мы заменили второе слово на Universe, а затем, наконец, вывели строку, которая является Hello Universe.

Пример 3: Использование переменной

Переменные позволяют хранить информацию и получать к ней доступ. Если вы раньше использовали языки программирования, вы наверняка о них знаете. В случае с awk вы используете его для обработки текстовых файлов. Используя переменные, вы можете получить доступ к определенным полям данных в файле, как показано ниже.

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

Далее вам нужно запустить команду, как показано ниже.

awk 'print $ 1' mynewfile

Как видите, он выводит ту конкретную переменную, которая показывает это поле из файла. Также вы должны увидеть ошибку, которую я сделал.

Пример 4: предварительная обработка AWK

С помощью команды awk вы можете добавить предварительную обработку. Для этого вам нужно использовать ключевое слово BEGIN.

Если вы внимательно читаете, мы создали новый файл выше. Давайте попробуем использовать предварительную обработку awk, чтобы продемонстрировать содержимое файла.

Команда для этого следующая.

awk 'awk BEGIN print "Содержание файла:"> print $ 0', mynewfile

Пример скриншота выше неверен. Я использовал «Begin» вместо «BEGIN», поэтому вы не видите, что оператор печати выполняется. Я оставляю это для вас, чтобы вы попробовали и посмотрели, как пойдет ваш результат!

Пример 5: Чтение скрипта из файла

Это сложно. Здесь вы можете использовать сценарий awk для чтения файла.

Мы создаем новый скрипт, который содержит следующие.

print $ 1 "вселенная начинается с" 6 $ "

Мы сохранили файл как сценарий новостей.

Теперь запустите следующую команду на терминале.

$ awk -F: -f новый скрипт / etc / passwd

Очаровательно, правда!

Пример 6: Постобработка AWK

Далее мы посмотрим на постобработку AWK. Он работает аналогично предварительной обработке, но на этот раз для постобработки используется команда END.

$ awk 'BEGIN print "Сейчас начинается содержимое файла:">> print $ 0>> END print "Файл заканчивается"' mynewfile

Пример 7: Пользовательские переменные

Вы также можете использовать переменные в команде awk без использования числа или знака доллара.

Ниже приведен пример.

$ awk 'BEGIN test = "Добро пожаловать в FossLinux Awesome Linux Family" print test'

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

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

$ awk 'BEGIN x - "fossLinux"; печать toupper (x) '
$ awk 'НАЧАЛО x = exp (35); печать x '

Пример 9: Форматирование печати

Вы также можете отформатировать функцию printf, которая поставляется с awk. Вы можете использовать множество модификаторов. Например, вы можете использовать c для вывода на печать в виде строки; вы также можете использовать d для целочисленного значения и т. д.

$ awk 'BEGIN x = 200 * 200 printf "Результат:% e \ n", x'

Пример 10: Структурированные команды

Вы также можете использовать структурированные команды, такие как if, else, while или for loop. Давайте посмотрим на приведенный ниже пример команды if.

$ awk 'if ($ 1> 20) print $ 2' mynewfile

Заключение

Это подводит нас к концу нашего руководства по командам awk. Итак, вы нашли это полезным, и собираетесь ли вы использовать его в своей работе?? Прокомментируйте ниже и дайте нам знать.

Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...