
AWK é uma linguagem de programação interpretada que é, geralmente, usada para deixar os scripts de shell mais poderosos e com mais recursos. É usada mais para processar dados nos textos e operações com arquivos.
O nome tem origem na primeira letra do sobrenome de cada um dos criadores: Alfred A ho, Peter W einberger e Brian K ernighan.
Esta linguagem, é considerada por muitos, um importante marco para história da programação, tendo tido bastante influência na criação de outras linguagens de programação, como, por exemplo, Perl e Python.
awk '{ print "Hello, World" }'
awk -f hello.awkA flag -f diz que o comando a seguir é um programa a ser executado.
Para um programa executável, usar o /usr/bin/awk.
Exemplo, crie um arquivo world.awk com o conteúdo
# !/usr/bin/awk -f
# My first awk script
{ print "Hello, World!" }Tornando este arquivo executável
chmod +x world.awkExecutando
./world.awkVariáveis da Linguagem
Salve o arquivo caes.txt
rex marelo calmo magro
branco branco zangado magro
lennon branco brincalhao gordo
fred branco zangado gordoImprime o arquivo inteiro
awk '{print $0}'Podemos usar essas variáveis dentro do comando print. Nele, sempre que colocamos uma vírgula, estamos espaçando
awk '{print "O",$1,"é",$4}' caes.txtSaída
 o rex é magro
 o branco é magro
 o lennon é gordo
 o fred é gordoawk '{print "O"$1"é"$4}' caes.txtSaída
 o rexémagro
 o brancoémagro
 o lennonégordo
 o fredégordoCom o begin, o AWK não espera por uma entrada (como digitar ENTER duas vezes), ele executa tudo daquele bloco
awk 'BEGIN {print "Vai ser tudo \n imprimido \n de uma vez só\n"}'Saída
 Vai ser tudo
 imprimido
 de uma vez sóA única coisa que o print faz que o printf não faz, é colocar automaticamente uma nova linha ao final da string \n.
awk '{ printf "Cor do cachorro %s: %s\n", $1, $2}' caes.txt Não pode começar variáveis por dígitos, elas são case sensitivo, não devem ter o mesmo nome das variáveis do AWK, nem de outros comandos e não precisam ser inicializadas ou declaradas.
Ao usar pela primeira uma variável, ela é tanto uma string vazia(“”) como “0”, mas não é muito bom confiar seu script nesses valores iniciais.
AWK é fracamente tipado, ou seja, você pode atribuir um número a uma variável e sem seguida atribuir uma string, por exemplo.
Ex.: Salvar como “caes2.awk”
BEGIN { nomecor="%-15s %20s\n"; printf nomecor, "Nome", "Cor\n"}
 { printf nomecor, $1, $2}São as instruções de controle que controlam o fluxo da execução dos programas em AWK. Em AWK, elas são similares as de C, além de possuírem os mesmos loopings e interações do padrão Shell.
Elas são: if, while, for, do e similares.
Arquivo: gnu.txt
Eric    59 3 2112
Linus    30 5 578
Richard   40 3 2789
Marcos   24 1 134awk '{ if($4 > 2000) print $1 }' gnu.txtDirecionando a saída
awk 'BEGIN {print 1+1 > "resultado" }'#!/usr/bin/awk -f
{
 if( $1 == "Eric" )
 printf "O primeiro\n"
 else if( $1 == "Linus" )
 printf "o segundo\n"
 else
 printf "Ouro cara\n"
}https://pt.wikipedia.org/wiki/Awk
http://www.vivaolinux.com.br/artigo/AWK-Introducao
http://www.zago.eti.br/script/awk.html
http://www.lpic.com.br/shell/comandos/awk/print/print.pdf
http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawkA4.pdf
http://www.faqs.org/faqs/computer-lang/awk/faq/
http://www.gnu.org/software/gawk/manual/gawk.html