Como escrever comandos e scripts AWK
O comando awk é um método poderoso para processar ou analisar arquivos de texto. Em particular, ele analisa arquivos de dados que são organizados por linhas (linhas) e colunas. Comandos awk simples podem ser executados a partir do linha de comando. Tarefas mais complexas devem ser escritas como programas awk (chamados de scripts awk) em um arquivo.

AWK Basics
O formato básico de um comando awk é assim:
awk 'padrão {ação}' arquivo de entrada> arquivo de saída
Isso significa: pegue cada linha do arquivo de entrada; se a linha contiver o padrão, aplique a ação à linha e grave a linha resultante no arquivo de saída. Se o padrão for omitido, a ação será aplicada a todas as linhas. Por exemplo:
awk '{print $ 5}' table1.txt> output1.txt
A instrução acima pega o elemento da 5ª coluna de cada linha e o grava como uma linha no arquivo de saída "output.txt". A variável '$ 4' refere-se à quarta coluna. Da mesma forma, você pode acessar a primeira, segunda e terceira coluna, com $ 1, $ 2, $ 3, etc. Por padrão, as colunas são consideradas separadas por espaços ou tabulações (os chamados espaços em branco). Portanto, se o arquivo de entrada "table1.txt" contiver estas linhas:
1, Justin Timberlake, Título 545, Preço $ 7,30
2, Taylor Swift, Título 723, Preço $ 7,90
3, Mick Jagger, Título 610, Preço $ 7,90
4, Lady Gaga, Título 118, Preço $ 7,30
5, Johnny Cash, Título 482, Preço $ 6,50
6, Elvis Presley, Título 335, Preço $ 7,30
7, John Lennon, Título 271, Preço $ 7,90
8, Michael Jackson, Título 373, Preço $ 5,50
Em seguida, o comando gravaria as seguintes linhas no arquivo de saída "output1.txt":
545,
723,
610,
118,
482,
335,
271,
373,
Se o separador de coluna for algo diferente de espaços ou tabulações, como uma vírgula, você pode especificar isso na instrução awk da seguinte maneira:
awk -F, '{print $ 3}' table1.txt> output1.txt
Isso selecionará o elemento da coluna 3 de cada linha se as colunas forem consideradas separadas por uma vírgula. Portanto, a saída, neste caso, seria:
Título 545
Título 723
Título 610
Título 118
Título 482
Título 335
Título 271
Título 373
Expressões condicionais em AWK
A lista de declarações dentro das chaves ('{', '}') é chamada de bloco. Se você colocar um expressão condicional na frente de um bloco, a instrução dentro do bloco será executada somente se a condição for verdadeira.
awk '$ 7 == "\ $ 7,30" {print $ 3}' table1.txt
Nesse caso, a condição é $ 7 == "\ $ 7,30", o que significa que o elemento na coluna 7 é igual a $ 7,30. A barra invertida na frente do cifrão é usada para evitar que o sistema interprete $ 7 como uma variável e, em vez disso, interprete o cifrão literalmente.
Portanto, esta instrução awk imprime o elemento na 3ª coluna de cada linha que possui um "$ 7,30" na coluna 7.
Você também pode usar expressões regulares como condição. Por exemplo:
awk '/ 30 / {print $ 3}' table1.txt
A string entre as duas barras ('/') é a expressão regular. Nesse caso, é apenas a string "30". Isso significa que se uma linha contém a string "30", o sistema imprime o elemento na 3ª coluna dessa linha. o saída no exemplo acima seria:
Timberlake,
Gagá,
Presley,
Realizar cálculos em AWK
Se os elementos da tabela forem números, awk pode executar cálculos sobre eles como neste exemplo:
awk '{print ($ 2 * $ 3) + $ 7}'
Além das variáveis que acessam os elementos da linha atual ($ 1, $ 2, etc.), existe a variável $ 0 que se refere à linha completa (linha), e a variável NF que se refere ao número de campos.
Você também pode definir novas variáveis como neste exemplo:
awk '{soma = 0; para (col = 1; col <= NF; col ++) soma + = $ col; imprimir soma; }'
Isso calcula e imprime a soma de todos os elementos de cada linha.
Declarações awk são freqüentemente combinadas com comandos sed.