Поиск по сайту:

Как писать сценарии с использованием языка программирования Awk. Часть 13.


На протяжении всей серии статей об Awk и до части 12 мы писали небольшие команды и программы Awk в командной строке и в сценариях оболочки соответственно.

Однако Awk, как и Shell, также является интерпретируемым языком, поэтому, учитывая все, что мы рассмотрели в начале этой серии, теперь вы можете писать исполняемые сценарии Awk.

Подобно тому, как мы пишем сценарий оболочки, сценарии Awk начинаются со строки:

#! /path/to/awk/utility -f 

Например, в моей системе утилита Awk расположена в /usr/bin/awk, поэтому я бы запускал сценарий Awk следующим образом:

#! /usr/bin/awk -f 

Объяснение строки выше:

  1. #! – называется Shebang и указывает интерпретатор инструкций в скрипте.
  2. /usr/bin/awk – интерпретатор
  3. -f – опция интерпретатора, используемая для чтения файла программы.

Тем не менее, давайте теперь углубимся в рассмотрение некоторых примеров исполняемых сценариев Awk. Мы можем начать с простого сценария, приведенного ниже. Используйте свой любимый редактор, чтобы открыть новый файл следующим образом:

vi script.awk

И вставьте в файл приведенный ниже код:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Сохраните файл и выйдите, затем сделайте скрипт исполняемым, введя команду ниже:

chmod +x script.awk

После этого запустите его:

./script.awk
Пример вывода
Writing my first Awk executable script!

Критически настроенный программист наверняка спросит: «где комментарии?», да, вы также можете включать комментарии в свой сценарий Awk. Написание комментариев в коде всегда является хорошей практикой программирования.

Это помогает другим программистам, просматривающим ваш код, понять, чего вы пытаетесь достичь в каждом разделе сценария или файла программы.

Поэтому вы можете включить комментарии в приведенный выше сценарий следующим образом.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Далее мы рассмотрим пример, в котором мы читаем входные данные из файла. Мы хотим найти системного пользователя с именем aaronkilik в файле учетной записи /etc/passwd, а затем распечатать имя пользователя, ID пользователя и имя пользователя. GID следующим образом:

Ниже приведено содержимое нашего скрипта под названием второй.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Сохраните файл и выйдите, сделайте скрипт исполняемым и выполните его, как показано ниже:

chmod +x second.awk
./second.awk /etc/passwd
Пример вывода
Username : aaronkilik User ID : 1000 User GID : 1000

В последнем примере ниже мы будем использовать оператор do while для вывода чисел от 0–10:

Ниже приведено содержимое нашего скрипта под названием do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

После сохранения файла сделайте скрипт исполняемым, как мы это делали раньше. После этого запустите его:

chmod +x do.awk
./do.awk
Пример вывода
0
1
2
3
4
5
6
7
8
9
10

Краткое содержание

Мы подошли к концу этой интересной серии статей об Awk. Надеюсь, вы многому научились из всех 13 частей, посвященных введению в язык программирования Awk.

Как я уже упоминал в начале, Awk — это полноценный язык обработки текста, поэтому вы можете узнать больше о других аспектах языка программирования Awk, таких как переменные среды, массивы, функции (встроенные и определяемые пользователем) и многое другое.

Есть еще дополнительные части программирования на Awk, которые нужно изучить и освоить, поэтому ниже я предоставил несколько ссылок на важные онлайн-ресурсы, которые вы можете использовать для расширения своих навыков программирования на Awk. Это не обязательно все, что вам нужно, вы также можете посмотреть ищу полезные книги по программированию на Awk.

Справочные ссылки: Руководство пользователя GNU Awk и программирование на языке AWK.

Для любых мыслей, которыми вы хотите поделиться, или вопросов, используйте форму комментариев ниже. Не забывайте всегда оставаться на связи с Tecmint, чтобы получать больше интересных сериалов.