Awk

Как использовать переменную в команде awk

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

Example -1: Определение и печать переменной

Команда awk использует параметр -v для определения переменной. В этом примере Myvar переменная определяется в команде awk для хранения значения, «Переменная AWK» это напечатано позже. Выполните следующую команду из терминала, чтобы проверить вывод.

$ echo | awk -v myvar = 'переменная AWK' 'print myvar'

Выход:

Пример - 2: Использование переменной оболочки в awk с одинарными и двойными кавычками

В примере показано, как можно использовать переменную оболочки команды awk. Здесь переменная оболочки, Myvar объявляется со значением, «Linux-подсказка» в первой команде. Символ '$' используется с именем переменной оболочки для чтения значения. Вторая команда читает переменную, $ myval с одинарной кавычкой ('), а третья команда считывает переменную $ myvar с двойной кавычкой («) в операторе' awk '.

$ myvar = "Подсказка для Linux"
$ echo | awk -v awkvar = '$ myvar' 'напечатать awkvar; '
$ echo | awk -v awkvar = "$ myvar" 'напечатать awkvar; '

Выход:

В выводе показано, что значение $ myvar не может быть прочитано, если оно заключено в одинарную кавычку ('), а вывод $ myvar. Значение $ myvar печатается, когда он заключен в двойные кавычки («).

Пример - 3: чтение переменной ARGC в awk

Переменная ARGC используется для подсчета общего количества аргументов командной строки. В следующем сценарии awk передаются три переменные аргументов командной строки (t1, t2, t3). Здесь общее количество аргументов скрипта равно 4. Запускаем скрипт из терминала.

$ awk 'BEGIN print "Total arguments =", ARGC' t1 t2 t3

Выход:

Следующий вывод появится после запуска скрипта.

Пример - 4: Чтение содержимого файла по переменным аргумента

Создайте текстовый файл с именем клиент.текст со следующим содержанием, чтобы попрактиковаться в этом примере. Здесь каждое поле файла разделено одиночным вкладка космос.

клиент.текст

ID Имя
103847 Джон Майкл
209485 Уотсон
974732 Мира Хоссейн

Команда AWK может читать каждое поле из любого текстового файла с помощью переменных аргументов. В клиент.текст файл. Это ID и Имя. Следующий скрипт распечатает эти два поля с помощью переменных аргументов, 1 доллар а также 2 доллара разделив два вкладка пробелы. Запускаем скрипт из терминала.

$ cat клиент.текст
$ cat клиент.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Выход:

Следующий вывод появится после выполнения вышеуказанных команд.

Пример-5: Использование встроенной переменной, функции FS и разделителя полей с командой awk

Переменная FS используется в команде awk как разделитель полей. Пробел используется как значение по умолчанию для FS. Следующая команда прочитает файл клиент.текст используя пробел в качестве разделителя полей и распечатать содержимое файла. Запускаем команду из терминала.

Клиент $ awk FS.текст

Выход:

Следующий вывод появится после запуска скрипта.

Команда AWK может использовать другие символы в качестве разделителя полей с помощью параметра '-F'. Создайте текстовый файл с именем продукт.текст со следующим содержанием, где ':' используется как разделитель полей.

продукт.текст

101: Торт: 30 долларов
102: карандаш: 5 долларов
103: Мыло: 3 доллара
104: Шампунь: 10 долларов

В файле три поля, продукт.текст который содержит идентификатор продукта, название и цену. Следующая команда awk будет печатать только второе поле каждой строки. Запускаем команды из терминала.

$ cat продукт.текст
$ awk -F ':' 'print $ 2' продукт.текст

Выход:

Здесь первая команда распечатала содержимое продукт.текст а вторая команда напечатала только второе поле файла.

Пример - 6: Использование встроенной переменной, NR с командой awk

Переменная NR используется в команде awk для подсчета общего количества записей или строк файла. Создайте текстовый файл с именем ученик.текст чтобы проверить функцию этой переменной.

ученик.текст

Назовите пакетный семестр
Иоанна 20 3
Мира 22 1
Элла 18
Чарльз 15 8

Следующий скрипт awk напечатает первые три строки продукт.текст файл. Здесь условие добавляется с помощью переменной NR. Команда напечатает те строки, в которых значение NR меньше 4. Запускаем скрипт из терминала.

Выход:

Следующий вывод появится после запуска скрипта.

$ кошка студент.txt | awk 'NR < 4'

Пример - 7: Использование встроенной переменной, NF с командой awk

Переменная NF используется в команде awk для подсчета общего количества полей в каждой строке файла. Следующий скрипт awk применяется к файлу, ученик.текст который создан в предыдущем примере. Скрипт напечатает эти строки из ученик.текст файл, в котором общее количество полей меньше 3. Запускаем команду из терминала.

$ кошка студент.txt | awk 'NF < 3'

Выход:

В файле есть только одна строка, в которой общее количество полей меньше 3, которая выводится на печать.

Пример - 8: Использование встроенной переменной, OFS с командой awk

Переменная OFS используется в команде awk для добавления разделителя выходных полей в выходные данные. продукт.текст файл используется в этом примере, чтобы показать использование переменной OFS. ':' используется как разделитель полей в продукте.txt файл. Следующий скрипт awk использует '->' в качестве значения OFS, а второе и третье поля файла будут напечатаны с добавлением этого разделителя. Запускаем команды из терминала.

$ cat продукт.текст
$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' продукт.текст

Выход:

Следующий вывод будет напечатан после выполнения команд.

Заключение:

В этом руководстве мы попытаемся объяснить наиболее распространенные применения переменных awk. Надеюсь, читатель сможет правильно использовать переменные awk в скрипте после практики этого руководства.

Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...