Como escrever scripts usando a linguagem de programação Awk - Parte 13
Desde o início da série Awk até a Parte 12, escrevemos pequenos comandos e programas do Awk na linha de comando e em scripts de shell, respectivamente.
Entretanto, Awk, assim como Shell, também é uma linguagem interpretada, portanto, com tudo o que vimos desde o início desta série, agora você pode escrever scripts executáveis do Awk.
Semelhante à forma como escrevemos um script de shell, os scripts Awk começam com a linha:
#! /path/to/awk/utility -f
Por exemplo, no meu sistema, o utilitário Awk está localizado em /usr/bin/awk, portanto, eu iniciaria um script Awk da seguinte forma:
#! /usr/bin/awk -f
Explicando a linha acima:
#!
– conhecido como Shebang, que especifica um interpretador para as instruções em um script/usr/bin/awk
– é o intérprete-f
– opção de interpretador, usada para ler um arquivo de programa
Dito isso, vamos agora examinar alguns exemplos de scripts executáveis do Awk. Podemos começar com o script simples abaixo. Use seu editor favorito para abrir um novo arquivo da seguinte forma:
vi script.awk
E cole o código abaixo no arquivo:
#!/usr/bin/awk -f
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Salve o arquivo, saia e torne o script executável emitindo o comando abaixo:
chmod +x script.awk
Depois disso, execute-o:
./script.awk
Saída de amostra
Writing my first Awk executable script!
Um programador crítico deve estar se perguntando: “onde estão os comentários?”, sim, você também pode incluir comentários em seu script Awk. Escrever comentários em seu código é sempre uma boa prática de programação.
Ajuda outros programadores que examinam seu código a entender o que você está tentando alcançar em cada seção de um script ou arquivo de programa.
Portanto, você pode incluir comentários no script acima da seguinte maneira.
#!/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!" }
A seguir, veremos um exemplo em que lemos a entrada de um arquivo. Queremos procurar por um usuário do sistema chamado aaronkilik no arquivo da conta, /etc/passwd, e então imprimir o nome de usuário, o ID do usuário e o usuário GID da seguinte forma:
Abaixo está o conteúdo do nosso script chamado second.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 }
Salve o arquivo e saia, torne o script executável e execute-o conforme abaixo:
chmod +x second.awk
./second.awk /etc/passwd
Saída de amostra
Username : aaronkilik User ID : 1000 User GID : 1000
No último exemplo abaixo, usaremos a instrução do while para imprimir números de 0-10:
Abaixo está o conteúdo do nosso script chamado 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)
}
Depois de salvar o arquivo, torne o script executável como fizemos antes. Depois, execute-o:
chmod +x do.awk
./do.awk
Saída de amostra
0
1
2
3
4
5
6
7
8
9
10
Resumo
Chegamos ao final desta série interessante do Awk, espero que você tenha aprendido muito com todas as 13 partes, como uma introdução à linguagem de programação Awk.
Como mencionei desde o início, Awk é uma linguagem de processamento de texto completa, por esse motivo, você pode aprender mais sobre outros aspectos da linguagem de programação Awk, como variáveis ambientais, arrays, funções (integradas e definidas pelo usuário) e muito mais.
Ainda há partes adicionais da programação do Awk para aprender e dominar, então, abaixo, forneci alguns links para recursos on-line importantes que você pode usar para expandir suas habilidades de programação do Awk. procure livros úteis de programação do Awk.
Links de referência: Guia do usuário do GNU Awk e programação em linguagem AWK
Para qualquer opinião que você queira compartilhar ou perguntas, use o formulário de comentários abaixo. Lembre-se de ficar sempre conectado ao Tecmint para mais séries emocionantes.