Pesquisa de site

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:

  1. #! – conhecido como Shebang, que especifica um interpretador para as instruções em um script
  2. /usr/bin/awk – é o intérprete
  3. -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.