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 в скрипте после практики этого руководства.