Tratamento de arquivo [RESOLVIDO]

1. Tratamento de arquivo [RESOLVIDO]

Marcio Cardoso
tabinha

(usa CentOS)

Enviado em 13/04/2012 - 14:26h

Tenho um arquivo com um grande conteudo de linhas algo no seguinte formato

JOAO;123;9876;12345;JOSE
JOAO;123;9876;12349;JOSE
JOAO;123;9876;12347;JOSE
JOAQUIM;123;9876;12342;MANOEL
JOAQUIM;123;9876;12341;MANOEL
JOAQUIM;123;9876;12346;MANOEL
MARIA;321;6543;3215;4321;JOAQUINA
MARIA;321;6543;3215;4325;JOAQUINA
MARIA;321;6543;3215;4322;JOAQUINA
BOLA;321;6543;3215;4322;RETANGULO
BOLA;321;6543;3215;4322;TRIANGULO
BOLA;321;6543;3215;4322;QUADRADO

Atualmente tenho um comando que considera o ";" como quebra de campo na linha, gostaria de saber se dependendo do que tenho no primeiro campo eu escolher qual campo quero utilizar. Tipo:

se campo1 = 'joao' ou 'joaquim'; then
cat arquivo.txt mostracampo4
se nao
cat arquivo.txt mostracampo5
fimse

mostrando este resultado:

12345
12349
12347
12342
12341
12346
4321
4325
4322

(juntar todos os qu são iguais)

obrigado!




  


2. MELHOR RESPOSTA

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 13/04/2012 - 15:54h

Tem muitas maneiras ... aqui segue uma delas

awk -F\; '$1 == "JOAO" || $1 == "JOAQUIM" { print $4 }; $1 != "JOAO" && $1 != "JOAQUIM" { print $5 } ' seu_arquivo | sort | uniq



3. Banco

Guilherme Krofke
guikrofke

(usa Ubuntu)

Enviado em 13/04/2012 - 15:23h

Boa tarde, voce ja cogitou a ideia de migrar esse arquivo para um banco de dados, tem um artigo recente aqui no vol que explica como fazer isso,
http://www.vivaolinux.com.br/artigo/SQLite-3-Convertendo-tabelas-do-LibreOffice-em-Banco-de-Dados/



4. Re: Tratamento de arquivo [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 13/04/2012 - 18:06h

Se quiser outra solução com looping e if, segue:


cat arquivo.txt | while read line
do

if [ `echo $line | cut -d";" -f1` == JOAO ] || [ `echo $line | cut -d";" -f1` == JOAQUIM ]; then

echo $line | cut -d";" -f4

else

echo $line | cut -d";" -f5

fi

done





5. Re: Tratamento de arquivo [RESOLVIDO]

Marcio Cardoso
tabinha

(usa CentOS)

Enviado em 13/04/2012 - 20:11h

Dei uma pesquisada e finalizei esta parte dando um cat procurando uma parte caracteristica do arquivo e a partir dai eu direcionava qual campo eu queria e o direcionei para um arquivo temporario depois com um uniq unifiquei os que são os iguais....

Agradeço a todos pelo help!

posteriormente postarei o comando aki!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts