Как использовать цикл for в команде awk

Цикл используется для многократного выполнения некоторых операторов. Итерация цикла на основе условия завершения или количества элементов массива. Любой язык программирования поддерживает три типа циклов. Цикл For — один из них. Цикл For можно объявить двумя способами. Простой цикл for состоит из трех частей. И еще один цикл for — это цикл for-in, который используется для перебора любого списка данных или массива. В этом руководстве показано использование этих двух типов циклов в команде awk на различных примерах.

Синтаксис:

  1. для объявление цикла:
for (инициализация; условие завершения; увеличение/уменьшение) {
операторы
}

Первая часть используется для инициализации переменной для запуска цикла for . Вторая часть содержит условие завершения для управления итерацией цикла, и цикл будет продолжаться до тех пор, пока условие не станет истинным. Последняя часть будет увеличивать или уменьшать переменную инициализации на основе первой части.

  1. объявление for-in
for (переменная в массиве/списке) {
операторы
}

for-in цикл используется для выполнения тех задач, в которых количество итераций цикла не фиксировано. Цикл for-in в основном используется для анализа массива или списка данных. Цикл считывает все данные из массива или списка и сохраняет значение переменной на каждой итерации.

Пример-1: Использование простого цикла for

В следующем скрипте используется простой цикл for. Здесь переменная counter инициализируется значением 10, и цикл завершится, когда значение counter станет меньше 5. Сценарий напечатает counter от 10 до 5. Запустите команду из терминала.

$ echo | awk ‘{for (counter = 10; counter> = 5; counter—)
print «Выполняется на», counter, «times.», » n»; } ‘

Вывод:

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

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

В следующем скрипте объявляется массив с именем Customer, где id клиента задается как индекс массива, а идентификатор клиента name устанавливается как значение массива. Цикл for-in используется здесь для перебора каждого индекса из массива и печати имени клиента. Запускаем скрипт из терминала.

$ echo | awk ‘BEGIN {Клиент [«4587»] = «Нил Джонсон»;
Клиент [«8953»] = «Элла бинте Назир»;
Клиент [«3455»] = «Брюс Хислоп» ;
Клиент [«6335»] = «Изабелла»;

} КОНЕЦ {для (i в Клиенте)
print «Имя», i, «is», Customer [i]
} ‘

Вывод:

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

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

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

$ echo | awk ‘END {for (i = 1; i for (j = 1; j print «Итерация строки», i, «и column «, j,» n «;} ‘

Вывод:

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

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

break . Оператор используется в любом цикле для завершения цикла до достижения условия завершения на основе особое состояние. В следующем скрипте цикл for начинается с 3 и завершается, когда значение i больше 20. Но когда значение i будет равно переменной num , тогда условие if будет истинным, и цикл завершится для оператора break .

$ echo | awk ‘BEGIN {число = 7; } END {for (i = 3; i if (i == num) break;
else
print «Текущее значение i =» , i, » n»;}} ‘

Вывод:

Здесь, если условие ложно для четырех итераций, когда значение i равно 3, 4, 5 и 6. Итак, следующий вывод печатается для четырех итераций.

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

Оператор Continue используется в любом цикле для пропуска любого оператора на основе какого-либо конкретного условия. В следующем скрипте объявляется массив с именем product . Цикл for-in используется для перебора массива и проверки каждого значения с помощью « Office Software ». Если значение совпадает, то будет напечатано сообщение о недоступности, опуская доступное сообщение для оператора continue, в противном случае будет напечатано сообщение о недоступности. Запускаем скрипт из терминала.

$ echo | awk ‘BEGIN {product [«1001»] = «Антивирус»;
product [«1002»] = «Офисное ПО»;
product [«1003»] = «Программное обеспечение для рисования»;
product [«1004»] = «HDD»;
product [«1005»] = «DVD»;} END {for (i in product) {
if (product [ i] == «Офисное программное обеспечение») {
продукт для печати [i], «недоступен n»;
продолжить;
}
продукт для печати [ i], «доступно», « n»;}} ‘

Вывод:

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

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

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

sales.txt

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Создайте файл awk с именем cal_sal.awk с следующий скрипт для расчета общей суммы продаж файла sale s.txt . Второе поле содержит годовой объем продаж в файле sales.txt . В скрипте массив продаж будет хранить все значения второго поля, а переменная sum инициализируется значением 0 для добавления всех значений . массив продаж . Затем цикл for-in используется для итерации каждого элемента массива продаж и добавления значения с суммой . Переменная. Наконец, инструкция print используется для вывода значения переменной sum для отображения общей суммы продаж.

cal_sal.awk

{
продажи [i ++] = $ 2;
sum = 0;
}
END {
for (i в продажах)
{
sum = sum + sales [i];
}
print «Total sales amount =» sum;
}

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

$ awk — f cal_sal.awk sales.txt

Вывод:

В sales.txt , а сумма продаж составляет 409000, которая печатается после выполнения скрипта.

Заключение:

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

Оцените статью
nanomode.ru
Добавить комментарий