Поиск по сайту:
Когда мы пишем программы, которые "обучают", мы - обучаем, а они - нет. (Алан.Дж.Перлис)

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

19.04.2021
Примеры команды 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

 

Читать  Как мне запросить ввод в Bash?

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

$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»:

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

 

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

 

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

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

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

Например:

$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++
}
}

 

Читать  Узнать дисковое пространство, используемое конкретным пользователем Linux

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

$awk -f myCode.awk

Заключение:

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 3,33 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Если вы проводите большую часть времени за терминалом, вы можете…

Спасибо!

Теперь редакторы в курсе.