«

»

ago 11

Imprimir Post

Utilizando o comando AWK

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

awk

Ola pessoal, irei mostrar neste post a utilidade do awk. Antes é preciso entender que o awk é nada mais do que uma linguagem interpretada frequentemente utilizada para processar,filtrar dados com textos, realizar consultas, gerar scripts e entre outras funcionalidades de busca.

 

1º  – Criei um arquivo para exemplificarmos o comando com o seguinte conteúdo :


Componente / Preço / ID
hard.drive,80.00,id=123
processador,300.00,id=321
placa.mae,400.00,id=124
fonte,500.00,id=350
gabinete,200.00,id=540
gabinete1,250.00,id=541
gabinete2,100.00,id=542
mouse,30.00,id=451
mouse1,10.00,id=390
mouse2,30.00,id=598
teclado,20.00,id=657
teclado1,25.00,id=243
teclado2,30.00,id=876
 

2º – Imprimindo campos com um filtro especifico :

# awk '/gabinete/' /root/awk

Neste exemplo, “gabinete” sera a palavra a ser buscada dentro do arquivo awk, assim,todas as linhas que conterem esta palavra serão impressas na tela. Exemplo :


gabinete,200.00,id=540
gabinete1,250.00,id=541
gabinete2,100.00,id=542

3º Comando Print : Suponhamos que haja a necessidade de visualização somente dos campos “componente” e “id”. Utilizando o comando print é possível imprimir somente os campos específicos solicitados.

Exemplo :

 # awk -F "," '/gabinete/ {print $1,$3;}' /root/awk

gabinete id=540
gabinete1 id=541
gabinete2 id=542

As sintaxes $1 e $3 são os campos 1 e 3. O que ocasiona a divisão destes campos é a opção -F seguida pela sintaxe “,” , a qual determina que a divisão dos campos sera por virgula.


*Obs: note que a “,” foi usada para este exemplo mas é cabível outras opções de separação.


4º OFS : O comando OFS ( Output Field Separator ) tem a função de aplicar uma separação de campos na saída de um comando.

Exemplo :

# awk -F "," '/teclado/ {OFS="\t";print $1,$3;}' /root/awk

teclado        id=657

teclado1      id=243
teclado2      id=876

Note que o comando OFS veio seguido da sintaxe =”\t”. O comando entre parênteses representa um “tab” como espaçamento,mas é possível colocar quaisquer outros tipos de critérios de separação.


5º – Condição IF : É possível tratar algumas condições com o awk, neste post irei tratar a condição “if”.

Exemplo :

# awk -F "," '{if($2~"10.00")print}' /root/awk

mouse1,10.00,id=390

Neste exemplo, estou pesquisando no campo 2 ($2) se há algum produto de valor igual ( ~) á 10.00 (“10.00”).


6º – BEGIN/END : As sintaxes BEGIN e END são utilizadas para executar uma ação no inicio ou no fim antes da leitura do comando. Neste exemplo, os campos “Componentes,preço e ID” serão impressos em primeiro plano através do BEGIN e o END sendo utilizado para imprimir “Fim do comando” logo depois da saída dos comandos.

# awk -F "," 'BEGIN { print "Componente\tPreço\tID" } {OFS="\t";print $1,$2,$3 } END { print "Fim do Comando" } ' /root/awk

Componente    Preço        ID
hard.drive         80.00        id=123
processador    300.00      id=321
placa.mae        400.00      id=124
fonte                  500.00      id=350
gabinete           200.00      id=540
gabinete1         250.00      id=541
gabinete2         100.00      id=542
mouse               30.00        id=451
mouse1            10.00         id=390
mouse2            30.00         id=598
teclado              20.00        id=657
teclado1            25.00        id=243
teclado2            30.00        id=876
 
Fim do Comando
 

Bom pessoal,  espero ajudar de alguma forma, e vir a falar em breve um pouco mais sobre outras utilidades do awk. Até a próxima.




Jardel Fernandes Fernandes da Costa (15 Posts)


0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Sobre o autor

Jardel Fernandes Fernandes da Costa

Link permanente para este artigo: http://comunidade.aw2net.com.br/utilizando-o-comando-awk/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×