awk com substr [RESOLVIDO]

1. awk com substr [RESOLVIDO]

Diogo Costa Gondim
diogondim

(usa Red Hat)

Enviado em 15/03/2012 - 15:18h

Pessoal,

Estou há alguns dias apanhando pra montar esse comando, ja procurei em diversos fóruns e não encontrei uma solução definitiva. Espero que vocês possam me ajudar.
Tenho arquivos com diversos campos, cada campo com tamanhos fixos e sem delimitador entre eles.


Exemplo:

00001 12123
00002 12124
00009 19215
00001 20324
00008 12357

Pois bem, gostaria de saber, por exemplo, a qtde de registros que obedecem a condição substr($6,1,3) = "121".
Tentei usar o awk mas só consigo pegar apenas um campo:

cat ARQUIVO.TXT | awf -F "" '$6 == "1"' | wc -l

Neste caso, ele me retornaria todos os registros com inicial "1" e não o específico "121".
Como resolver?
Desde já agradeço a colaboração de todos!


  


2. Re: awk com substr [RESOLVIDO]

Marcos Paulo Ferreira
daemonio

(usa Slackware)

Enviado em 15/03/2012 - 16:12h

Pelo que entendi você quer mandar o substr na segunda coluna, correto?

$ awk '{ if(substr($2,1,3) == 121) print $0 }' ARQUIVO.txt | wc -l

O $2 representa a segunda coluna e o $0 a linha como um todo. A contagem também poderia ser feita dentro do awk, evitando assim o uso do wc -l.



Penso que seja isso. Abraços.
t+


3. Re: awk com substr [RESOLVIDO]

Diogo Costa Gondim
diogondim

(usa Red Hat)

Enviado em 15/03/2012 - 16:25h

Amigão,

Já me ajudou bastante.
Agora considere um arquivo como o exemplo abaixo, sem espaços e sem delimitador:


042051011624663
038071011624668
057051211625263
021052011625286
041151411625300


Gostaria de contar apenas aqueles que obedecerem a condição "substr($0,4,2) = 51".(No exemplo, seriam as linhas: 1, 3 e 5)
Já testei esse comando e não funcionou, como faço?


4. Re: awk com substr [RESOLVIDO]

Diogo Costa Gondim
diogondim

(usa Red Hat)

Enviado em 20/03/2012 - 10:48h

Corrigindo,

Deu certo sim! Utilizei o seguinte comando:

$ awk '{ if(substr($0,4,2) == 51) print $0 }' ARQUIVO.txt | wc -l

Gratíssimo pela colaboração!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts