Синтаксис:
Имя, которое необходимо объявить для переменной массива. arrayName — это имя массива. Каждый массив должен использовать третью скобку для определения ключа или index , и это будет любое строковое значение для ассоциативного массива. Значение может быть любым символом, числом или строкой, которые будут храниться в конкретном индексе массива.
Пример-1: Определение и чтение одномерный массив в awk
Одномерный массив может хранить список данных одного столбца. Этот тип массива содержит один ключ и значение для каждого элемента массива. Этот массив можно использовать в команде awk, как и в других языках программирования. В этом примере массив с именем book объявлен с тремя элементами, а цикл for используется для чтения и печати каждого элемента. Выполните следующую команду из терминала.
книга [«JS»] = «Эффективный JavaScript»;
книга [«CSS»] = «Обучение Интернету Дизайн «;}
END {for (i in book) print» Книга «, i,» is «, book [i];} ‘
Пример-2: Определение и чтение двумерного массива в awk
Двумерный массив используется для хранения списка табличных данных, содержащего фиксированное количество строк и столбцы. В этом примере объявлен двумерный массив с именем student, содержащий три элемента. Здесь идентификатор и имя студента используются как ключевые значения массива. Как и в предыдущем примере, в сценарии awk используется цикл for-in для печати значений массива. Запустите следующий сценарий из терминала.
студентов [«87462, Мохаммед Али»] = 87;
студентов [«98376, Сакиб Аль Хасан»] = 99;
студентов [«79937, Мусфикур Rahman «] = 88;
print» (ID, Name) => Marks «;
}
END {для (i в учащихся) print» («, i,» ) => «, студенты [i]; } ‘
Вывод:
Пример 3: Удаление элемента массива
Любое значение массива может быть удалено на основе значения ключа. Здесь в начале скрипта определен массив book с тремя элементами. Затем значение ключа HTML удаляется с помощью удалить . Значение элемента ключа HTML печатается до и после команды delete . Выполните следующую команду, чтобы проверить вывод.
book [«JS»] = «Эффективный JavaScript «;
книга [» CSS «] =» Изучение веб-дизайна «;
print» Перед удалением — «, книга [» HTML «];
удалить книгу [» HTML » ];
print » nAfter Delete -«, book [«HTML»];} ‘
Вывод:
Вывод показывает, что значение индекса HTML пусто после выполнения команды delete .
Пример 4: чтение массива bash в awk
В предыдущих примерах массив объявлен в команде awk и повторяется циклом for-in. Но вы можете прочитать любой массив bash с помощью сценария awk. В этом примере массив bash с именем lang объявлен в первой команде. Во второй команде значения массива bash передаются в команду awk, которая сохраняет все элементы в массиве awk с именем awkArray. Значения массива awkArray печатаются с использованием цикла for . Выполните следующую команду из терминала, чтобы проверить вывод.
$ printf ‘% s n’ «$ {lang [@]}» | awk ‘{awkArray [NR] = $ 1} END {для
(i в awkArray) print awkArray [i], » n»; } ‘
Пример 5: Чтение содержимого файла в массив awk
Содержимое любого файла можно прочитать с помощью массива awk. Создайте текстовый файл с именем bird.txt с содержанием, указанным ниже.
bird.txt
Перепел
Серый попугай
Баазигар
Следующий скрипт awk используется для чтения содержимое файла bird.txt и сохраняет значения в массиве, цикл awkArray. for используется для анализа массива и печати значений в терминале. Запустите следующий сценарий из терминала.
Вывод:
Скрипт печатает содержимое bird .txt .
Пример 6: Удаление повторяющихся записей из файла
Сценарий awk можно использовать для удаления повторяющихся данных из любой текстовый файл. Создайте текстовый файл с именем fruit.txt со следующим содержанием. В файле есть два повторяющихся данных. Это Apple и Оранжевый .
fruit.txt
Апельсин
Виноград
Яблоко
Банан
Апельсин
Гуава
Следующий скрипт awk будет читать каждая строка из текстового файла, fruit.txt и проверьте, существует ли текущая строка в массиве, arr. Если строка существует в массиве, она не будет сохранять строку в массиве и не будет печатать значение в терминале. Таким образом, скрипт сохранит в массиве только уникальные строки из файла и распечатает. Выполните команды из терминала.
$ awk ‘! ($ 0 в arr) {print arr [$ 0], $ 0;}’ fruit.txt
Первая напечатает содержимое файла, fruit.txt, а вторая команда напечатает содержимое из fruit.txt после исключения повторяющихся строк из файла.
Заключение:
В этом руководстве показаны различные варианты использования массива в сценарии awk на различных примерах с пояснениями. Доступ к массиву Bash и любому содержимому текстового файла также можно получить с помощью массива awk. Если вы новичок в программировании на awk, то это руководство поможет вам изучить использование массива awk на базовом уровне, и вы сможете правильно использовать массив в сценарии awk.