Desde o início da série Awk até à Parte 12, temos escrito pequenos comandos e programas Awk na linha de comandos e em shell scripts, respectivamente.
No entanto, Awk, tal como Shell, é também uma linguagem interpretada, portanto, com tudo o que temos percorrido desde o início desta série, é agora possível escrever scripts executáveis Awk.
Similiar à forma como escrevemos um script 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:
-
#!
– referido como Shebang, que especifica um intérprete para as instruções num script -
/usr/bin/awk
– é o intérprete -
-f
– opção intérprete, usado para ler um ficheiro de programa
/ol>
Que, dito isto, vamos agora mergulhar em alguns exemplos de scripts executáveis Awk, podemos começar com o script simples abaixo. Use o seu editor favorito para abrir um novo ficheiro da seguinte forma:
$ vi script.awk
e cole o código abaixo no ficheiro:
#!/usr/bin/awk -f BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Guardar o ficheiro e sair, depois tornar o script executável emitindo o comando abaixo:
$ chmod +x script.awk
A seguir, execute-o:
$ ./script.awk
Sample Output
Writing my first Awk executable script!
Um programador crítico lá fora deve estar a perguntar: “onde estão os comentários?”, sim, também pode incluir comentários no seu script Awk. Escrever comentários no seu código é sempre uma boa prática de programação.
Ajuda outros programadores a procurar no seu código para compreender o que está a tentar alcançar em cada secção de um script ou ficheiro de programa.
Por isso, pode incluir comentários no script acima como se segue.
#!/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!" }
Next, veremos um exemplo em que lemos as entradas de um ficheiro. Queremos procurar um utilizador do sistema chamado aaronkilik no ficheiro de conta, /etc/passwd, depois imprimir o nome de utilizador, ID de utilizador e GID do utilizador como se segue:
Below é o conteúdo do nosso script chamado second.awk.
#! /usr/bin/awk -f #use BEGIN sepecial character to set FS built-in variableBEGIN { FS=":" }#search for username: aaronkilik and print account details /aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }
Guardar o ficheiro e sair, tornar o script executável e executá-lo como abaixo:
$ chmod +x second.awk$ ./second.awk /etc/passwd
Sample Output
Username : aaronkilik User ID : 1000 User GID : 1000
No último exemplo abaixo, usaremos o do enquanto declaração para imprimir números de 0-10:
Below é 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 counterx=0do { print x; x+=1;}while(x<=10)}
Depois de guardar o ficheiro, tornar o script executável como já fizemos anteriormente. Depois, execute-o:
$ chmod +x do.awk$ ./do.awk
Sample Output
012345678910
Sumário
Chegámos ao fim desta interessante série Awk, espero que tenham 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 essa razão, pode aprender mais outros aspectos da linguagem de programação Awk, tais como variáveis ambientais, matrizes, funções (built-in & definido pelo utilizador) e mais além.
Há ainda partes adicionais de programação Awk para aprender e dominar, por isso, abaixo, forneci alguns links para recursos on-line importantes que pode utilizar para expandir as suas capacidades de programação Awk, estes não são necessariamente tudo o que precisa, pode também procurar livros úteis de programação Awk.