Awk

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

Как да използвам променлива в командата awk
Променливите се използват за съхраняване на всяка временна стойност на всеки език за програмиране.  Дефинирането на променливата в командата awk е подобно на bash скриптовия език и тя работи като bash, когато променливата на черупката се използва с единична и двойна кавичка. Командата Awk има много вградени променливи за различни цели. Как могат да се използват дефинирани от потребителя, вградени променливи и черупки в командата awk е показано в този урок с помощта на различни примери.

Еxample -1: Дефиниране и отпечатване на променлива

Командата 'awk' използва опцията '-v' за дефиниране на променливата. В този пример, myvar променливата е дефинирана в командата 'awk' за съхраняване на стойността, „Променлива AWK“ който се отпечатва по-късно. Изпълнете следната команда от терминала, за да проверите изхода.

$ ехо | awk -v myvar = 'AWK променлива' 'print myvar'

Изход:

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

Примерът показва как променливата на черупката може да се използва командата 'awk'. Тук променлива на черупката, myvar се декларира със стойността, “Подсказка за Linux” в първата команда. Символът „$“ се използва с име на променлива на черупката за четене на стойността. Втората команда чете променливата, $ myval с единична кавичка (') и третата команда чете променливата $ myvar с двойна кавичка („) в оператора' awk '.

$ myvar = "Подсказка за Linux"
$ ехо | awk -v awkvar = '$ myvar' 'отпечатай awkvar; '
$ ехо | awk -v awkvar = "$ myvar" 'печат awkvar; '

Изход:

В изхода е показано, че стойността на $ myvar не може да бъде прочетена, когато е затворена с една кавичка (') и изходът е $ myvar. Стойността на $ myvar се отпечатва, когато е затворено с двойна кавичка („).

Пример - 3: Четене на ARGC променлива в awk

Променливата ARGC се използва за преброяване на общия брой аргументи на командния ред. Три променливи на аргументи от командния ред (t1, t2, t3) се предават в следния awk скрипт. Тук общият брой аргументи със скрипта е 4. Стартирайте скрипта от терминала.

$ awk 'BEGIN print "Общо аргументи =", ARGC' t1 t2 t3

Изход:

След стартиране на скрипта ще се появи следният изход.

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

Създайте текстов файл с име клиент.текст със следното съдържание, за да практикувате този пример. Тук всяко поле на файла е отделено с единично раздел пространство.

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

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

Командата Awk може да чете всяко поле от всеки текстов файл чрез променливи на аргументи. Има две полета в клиент.текст файл. Това са ИД и Име. Следният скрипт ще отпечата тези две полета чрез променливи на аргументи, $ 1 и $ 2 чрез разделяне на две раздел пространства. Стартирайте скрипта от терминала.

$ клиент котка.текст
$ клиент котка.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 ще отпечата само второто поле на всеки ред. Изпълнете командите от терминала.

$ котешки продукт.текст
$ 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 стойност, а второто и третото поле на файла ще се отпечатат чрез добавяне на този разделител. Изпълнете командите от терминала.

$ котешки продукт.текст
$ awk -F ':' 'НАЧАЛО OFS = "->"; печат $ 2, $ 3;' продукт.текст

Изход:

Следният изход ще се отпечата след стартиране на командите.

Заключение:

Най-често използваните awk променливи се опитват да обяснят в този урок. Надявам се, че читателят ще може правилно да използва awk променливи в скрипта, след като практикува този урок.

Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...