Синтаксис:
- за декларация за цикъл:
изявления
Първата част се използва за инициализиране на променливата за стартиране за цикъл. Втората част съдържа условието за прекратяване, за да се контролира итерацията на цикъла и цикълът ще продължи, докато условието е вярно. Последната част ще увеличи или намали променливата за инициализация въз основа на първата част.
- декларация за в
изявления
за-в цикъл се използва за изпълнение на тези задачи, при които броят на итерациите на цикъла не е фиксиран. за-в цикъл се използва главно за синтактичен анализ на масив или списък с данни. Цикълът чете всяка информация от масива или списъка и съхранява стойността в променлива във всяка итерация.
Пример-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 700002016 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.