AWK — это язык сценариев, который анализирует текстовые поля. Он широко используется для обработки файлов данных, содержащих строки и столбцы. Впервые AWK был представлен в 1970-х годах. Он получил свое название по фамилиям своих разработчиков: Альфреда Ахо, Питера Вайнбергера и Брайана Кернигана.
Основной формат команды AWK — awk ‘pattern {action}’ input-file > output-file. Фактически, если шаблон присутствует в строке входного файла, awk применит действие к этой строке и запишет полученную строку в выходной файл.
Как использовать команду Awk в Linux
Команда awk присутствует по умолчанию в современных системах Linux. Поэтому нет необходимости устанавливать ее. Здесь мы рассмотрели некоторые моменты о том, как использовать команду awk в Linux. Итак, приступим:
1. Печать определенных столбцов
Чтобы напечатать определенный столбец, нужно использовать команду awk. Например, если вы хотите напечатать 2-й и 3-й столбцы, используйте следующую команду:
$ awk '{print $2 "t" $3}' file.txt
В любом случае, если вы хотите напечатать все строки и столбцы в файле, просто используйте следующую команду:
$ awk '{ print $0}' file.txt
2. Печать строк с определенным шаблоном
$ awk '/variable_to_be_matched/ {print $0}' file.txt
Приведенный выше синтаксис можно использовать для печати строк с определенным шаблоном. Например, если вы хотите напечатать строки, содержащие букву ‘o’, просто добавьте ‘o’ вместо «переменная для сопоставления».
$ awk '/o/ {print $0}' file.txt
3. Печать столбцов с определенным шаблоном
$ awk ' /a/ {print $3 "t" $4}' file.txt
Эта команда выведет 3-й и 4-й столбцы, содержащие букву ‘a’.
4. Встроенные переменные
Для лучшего анализа данных awk поставляется с несколькими переменными. Здесь мы описали лишь некоторые из них.
NR: Команды NR ведут текущий подсчет количества входных записей. Чтобы подсчитать количество входного файла, можно воспользоваться командой:
$ awk ‘{print NR, $0}’ file.txt
NF: Переменная NF хранит счетчик полей для каждой записи.
$ awk ‘{print NF, $0}’ file.txt
Эта команда печатает последний столбец таблицы. Можно также вывести второй последний столбец таблицы с помощью команды
$ awk ‘{print $2, $(NF -1) }’ file.txt
ORS: ORS означает разделитель выходных записей. Он разделяет каждую строку входного файла нужным образом.
$ awk ‘ BEGIN {ORS = “:” } {print $0}’ file.txt
OFS: OFS означает разделитель выходных полей. Он разделяет каждое поле в нужном выходном формате.
$ awk ‘ BEGIN {OFS = “==” } {print $1, $2}’ file.txt
5. Арифметические операции
Если таблица содержит числа, команда awk может быть использована для выполнения арифметических операций.
$ awk ‘{print $1 + $3 }’ file.txt
6. Сохранение вывода
Для сохранения результатов вывода можно использовать оператор перенаправления «>». Кроме того, результат можно проверить с помощью команды cat.
$ cat output.txt
Команда Awk в Linux помогает программисту написать полезную программу. Здесь мы рассмотрели лишь несколько команд. Надеемся, что статья вам понравилась и оказалась полезной. Если у вас есть какие-либо предложения, то оставьте их в разделе комментариев ниже.