Awk

Как да използвам за цикъл в команда awk

Как да използвам за цикъл в команда awk
Loop се използва за многократно изпълнение на някои изрази. Итерацията на цикъла въз основа на условието за прекратяване или броя на елементите на масива. Три вида цикли се поддържат от всеки език за програмиране. For loop е един от тях. За цикъл може да се декларира по два начина. Цикълът Simple for съдържа три части.  И друг for цикъл е for-in цикъл, който се използва за итерация на всеки списък с данни или масив. Този урок показва използването на тези два вида цикли в команда awk, като използва различни примери.

Синтаксис:

  1. за декларация за цикъл:
за (инициализация; условие за прекратяване; нарастване / намаляване)
изявления

Първата част се използва за инициализиране на променливата за стартиране за цикъл. Втората част съдържа условието за прекратяване, за да се контролира итерацията на цикъла и цикълът ще продължи, докато условието е вярно. Последната част ще увеличи или намали променливата за инициализация въз основа на първата част.

  1. декларация за в
за (променлива в масив / списък)
изявления

за-в цикъл се използва за изпълнение на тези задачи, при които броят на итерациите на цикъла не е фиксиран. за-в цикъл се използва главно за синтактичен анализ на масив или списък с данни. Цикълът чете всяка информация от масива или списъка и съхранява стойността в променлива във всяка итерация.

Пример-1: Използване на цикъл simple for

В следния скрипт се използва обикновен цикъл for. Тук, брояч променливата се инициализира с 10 и цикълът ще завърши, когато стойността на брояч е по-малко от 5. Скриптът ще отпечата брояч стойности от 10 до 5. Изпълнете командата от терминала.

$ ехо | awk 'за (брояч = 10; брояч> = 5; брояч--)
print "Running for", counter, "пъти.","\н"; '

Изход:

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

Пример-2: Използване на цикъл for-in за четене на масив

Масив с име Клиент се декларира в следния скрипт, където е клиентът документ за самоличност се задава като индекс на масив и индекс на клиента име е зададена като стойност на масива. за-в цикъл се използва тук, за да повтори всеки индекс от масива и да отпечата името на клиента. Стартирайте скрипта от терминала.

$ ехо | awk 'BEGIN Клиент ["4587"] = "Нийл Джонсън";
Клиент ["8953"] = "Ella binte Nazir";
Клиент ["3455"] = "Брус Хислоп";
Клиент ["6335"] = "Изабела";
 
END за (i в Клиент)
print "Името на", i, "is", Клиент [i]
'

Изход:

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

Пример-3: Използване на вложен for цикъл

Когато цикъл for е деклариран под друг for цикъл, той се нарича вложен for цикъл. Външният цикъл, който се използва в този скрипт, ще повтори 2 пъти, а вътрешният цикъл ще повтори 3 пъти. И така, изявлението за печат ще се изпълни, (2X3 = 6) 6 пъти. Стартирайте скрипта от терминала.

$ ехо | awk 'END за (i = 1; i<=2; i++)
за (j = 1; j<=3; j++)
print "Итериращ ред", i, "и колона", j, "\ n"; '

Изход:

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

Пример-4: Използване на цикъл с оператор break

почивка израз се използва във всеки цикъл за прекратяване на цикъла преди достигане на условието за прекратяване въз основа на конкретното условие. В следващия скрипт цикълът for ще започне от 3 и ще приключи, когато стойността на i е по-голямо от 20. Но когато стойността на i ще бъде равно на променливата брой тогава условието if ще бъде вярно и цикълът ще се прекрати за почивка изявление.

$ ехо | awk 'НАЧАЛО num = 7; END за (i = 3; i<=20; i++)
ако (i == num) почивка;
друго
print "Текуща стойност на i =", i, "\ n"; '

Изход:

Тук, ако условието е false за четири повторения, когато стойността на i е 3,4,5 и 6. И така, следният изход се отпечатва за четирите итерации.

Пример-5: Използване на цикъл с оператор continue

Изявлението Continue се използва във всеки цикъл, за да пропусне всяко изявление въз основа на конкретно условие. Масив с име продукт е деклариран в следния скрипт. за-в цикъл се използва за итерация на масива и проверка на всяка стойност с „Офис софтуер„. Ако стойността съвпада, съобщението за недостъпност ще се отпечата, като се пропусне съобщението за продължаване, в противен случай съобщението за недостъпност ще се отпечата. Стартирайте скрипта от терминала.

$ ехо | awk 'BEGIN product ["1001"] = "Антивирус";
product ["1002"] = "Офис софтуер";
product ["1003"] = "Софтуер за чертане";
product ["1004"] = "HDD";
product ["1005"] = "DVD"; END за (i в продукта)
if (product [i] == "Office Software")
печат на продукт [i], "не е наличен \ n";
продължи;

печат на продукт [i], "наличен е", "\ n"; '

Изход:

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

Пример-6: Използване на цикъл в awk файл

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

продажби.текст

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Създайте awk файл с име cal_sal.awk със следния скрипт за изчисляване на общата сума на продажбите на файла продажби.текст. Второто поле съдържа годишната сума на продажбите във файла продажби.текст. В сценария, продажбите array ще съхранява всички стойности на второто поле и сума променливата се инициализира с 0, за да добави всички стойности на продажби масив. Следващия, за-в цикъл се използва за итерация на всеки елемент от продажбите масив и добавете стойността с сума променлива. И накрая, изявлението за печат се използва за отпечатване на стойността на сума променлива, за да се покаже общата сума на продажбите.

cal_sal.awk


продажби [i ++] = $ 2;
сума = 0;

КРАЙ
за (i в продажбите)

сума = сума + продажби [i];

print "Обща сума на продажбите =" сума;

Изпълнете следната команда, за да изпълните скрипта на cal_sal.awk файл.

$ awk -f cal_sal.awk продажби.текст

Изход:

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

Заключение:

В този урок се опитва да обясни различните приложения на цикъла for в командата awk. Надявам се, читателят ще получи ясна идея за използването на цикъл в awk скрипт и ще може да използва правилно цикъла в програмирането на awk.

Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...
Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...
Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...