You are on page 1of 3

Awk - Uma poderosa ferramenta de análise [Dica] http://www.vivaolinux.com.br/dicas/impressora.php...

Awk - Uma poderosa ferramenta de análise
Autor: Leonardo Berbert Gomes <leoberbert@uol.com.br>
Data: 01/07/2009

Awk - Uma poderosa ferramenta de análise

A linguagem awk é muito conhecida por sua eficácia em criar filtros de
conteúdos de arquivos. Nessa dica vou ensinar alguns truques que facilitarão a
vida de todos.

Vamos tomar como base o arquivo leo.txt, que tem o seguinte conteúdo:

188 :2106102121 192.168.0.89
267 :2206211021 192.168.0.88
438 :2306211021 192.168.0.87

1. Preciso mostrar na tela a primeira coluna do arquivo:

$ cat leo.txt | awk '{print $1}'
188
267
438

Entendendo:

print $1 -> Exibe a primeira coluna;
print $2 -> Exibe a segunda coluna e assim por diante;
print $NF ->Exibe a última coluna.

2. Em seguida me foi solicitado que contasse as linhas do resultado acima, para
isso podemos utilizar outro comando após o resultado:

$ cat leo.txt | '{print $1}' | wc -l

3. Suponha que eu necessite vasculhar esse arquivo e mostrar apenas os campo
com dia e mês, repare que na frente do dia existe um ":" que nos atrapalharia
um pouco nessa busca. Vou usar o comando cat para mostrar que o awk pode
ser combinado com os comandos do shell:

$ cat leo.txt | awk -F ":" '{print substr($2,1,4)}'
2106

1 de 3 19-09-2010 02:04

vou tomar como seleção "2106": $ cat leo.txt | awk -F ":" '{print substr($2. Vamos dificultar um pouco as coisas agora.br/dicas/impressora..Awk .4)}' -> Exibe a segunda coluna do primeiro ao quarto caractere. Eu agora tenho um outro arquivo (leo2. Então ficaria da seguinte forma: $ cat leo2.. ele fizesse um filtro por uma data específica.1. 4.4)}' | grep 2106 2106 5. Me foi solicitado que fizesse um filtro para descobrir todos os campos de 18:32:02 até 18:32:08.: Neste último exemplo temos uma condição que deve ser atendida. exibe o resultado encontrado. após mostrar esse resultado.txt) com o seguinte conteúdo: 183201 183202 183203 183204 183205 183206 183207 183208 183209 6. Observe que aqui estaremos trabalhando com um intervalo. Agora eu gostaria que.php.1. 2206 2306 Entendendo: awk -F ":" -> Ignora o caractere ":" da segunda coluna. 2 de 3 19-09-2010 02:04 . {print substr($2.Uma poderosa ferramenta de análise [Dica] http://www.vivaolinux. se verdadeira.txt | awk '{if (($1) >= "183202" && ($1) <= "183208") print}' 183202 183203 183204 183205 183206 183207 183208 Obs.com.

br/dica/Awk-Uma-poderosa-ferramenta-de-analise Voltar para o site 3 de 3 19-09-2010 02:04 ..Awk .com. Pessoal.vivaolinux. Em breve darei continuidade à dica com mais truques de Awk.php. http://www.Uma poderosa ferramenta de análise [Dica] http://www.com.vivaolinux. espero ter ajudado.br/dicas/impressora..