ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

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

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

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

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

$ awk [options] [file]

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

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

 

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

 

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

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

$ cat testFile.txt

 

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

$awk ‘{print $2}’ testFile.txt

 

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

$awk ‘{print $1,$2,$3}’ testFile.txt

 

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

$awk ‘{print $1$2$3}’ testFile.txt

 

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

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

$awk ‘/History/ {print $2}’ testFile.txt

 

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

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

$awk ‘$3 ~/is/ {print $2}’ testFile.txt

 

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

$awk ‘$3! ~/is/ {print $2}’ testFile.txt

 

Для сравнения мы также можем использовать такие операторы, как больше «>», меньше «<» и равно «=»:

$awk ‘$4>70 {print $2}’ testFile.txt

 

 

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

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

$awk ‘/AndreyEx/, /Alex/ {print $3}’ testFile.txt

 

Мы можем использовать двойной знак равенства «==» для определения диапазона; см. пример ниже:

$awk ‘$4 == 80, $4 == 90 {print $0}’ testFile.txt

 

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

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

$awk ‘$4>80 && $6>0.4 {print $2}’ testFile.txt

 

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

Есть два специальных выражения: «BEGIN» и «END»:

 

$awk ‘BEGIN {print “Обработка началась”}; {print $2}; END {print “Обработка закончилась”}’ testFile.txt

 

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

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

Переменная Описание
NF Он дает количество полей в данных
NR Выдает номер текущей записи
FILENAME Отображает имя файла, который в данный момент обрабатывается
FS и OFS Разделитель полей и разделитель полей вывода
RS и ORS Разделяет запись и разделитель выходной записи

Например:

$awk ‘END{print “The file name is ” FILENAME “has” NF “fields and” NR “records”}’ testFile.txt

 

Мы используем «END», но если вы используете «BEGIN», на выходе будет 0 полей и 0 записей.

 

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

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

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

 

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

$cat testFile2.txt

$awk ‘BEGIN {FS= “:”} {print $2}’ testFile2.txt

 

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

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

$awk -F “:” ‘{print $2}’ testFile2.txt

 

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

$awk ‘BEGIN {RS = “:”}{print $1}’ testFile2.txt

 

9. Действия Awk:

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

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

$awk ‘{“The is a field,” $2}’ testfile.txt

 

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

$awk ‘{sum += $4} END {printf “%d\n”, sum}’ testFile.txt

 

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

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

BEGIN {
i=2
while(j<4)
{
print “The multiplication of 2 with”  j “ is ” i*j;
j++
}
}

 

Сохраните программу под именем « myCode.awk » и, чтобы запустить ее, откройте терминал и введите:

$awk -f myCode.awk

Заключение:

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

Exit mobile version