Leitura de varios arquivos e concatenação dos mesmos [RESOLVIDO]

1. Leitura de varios arquivos e concatenação dos mesmos [RESOLVIDO]

Rodrigo Cahanovich
rodrigo_bocaum

(usa Debian)

Enviado em 21/10/2009 - 15:31h

Boa tarde
Talvez esta pergunta ja tenha no forum, mas devido ao pouco tempo que tenho para conseguir resolvi postar a pergunta
Tenho a seguinte situação
arquivo1
coluna1 coluna2 coluna3 coluna4 coluna5 coluna6 coluna7 coluna8

arquivo2
dado1 dado2 dado3 dado4 dado5 dado6 dado7 dado8
dado9 dado10 dado11 dado12 dado13 dado14 dado15 dado16
dado17 dado18 dado19 dado20 dado21 dado22 dado23 dado24

o que preciso é no caso de fazer mostar na tela (ou jogar em um arquivo) a seguinte saida
coluna1
dado1
dado9
dado17

coluna2
dado2
dado10
dado18

e assim vai.
Tentei pegar alguns exemplos de awk'{for ... ou outros, mas o meu problema eh sempre que em algum dos laços não consegue identificar uma variavel. O problema é que no arquivo 1, não sei quantos campos existem (o arquivo sempre muda), dai no meu laço de busca coloco uma variavel que conta o numero de campos do arquivo1 mas no laço de repetição o mesmo não é identificado.

Desde já agradeço
Att


  


2. Resolvendo o problema.

Rodrigo de Oliveira
jackadamantina

(usa Fedora)

Enviado em 21/10/2009 - 16:46h

Vamos lá,

Achei que fosse apenas 1 arquivos, mas poderia resolver desta forma ..caso fosse apenas 1 arquivo. Se ele tivesse 5 colunas.

for i in `seq 1 5`; do cat arquivo.txt | cut -d " " -f$i; done

Mas como você tem 2 arquivos, e gostaria de concatená-los, poderia utilizar o script abaixo que acabei de criar.

for t in `seq 1 5`; do cat arquivo1 | cut -d " " -f$t; for i in $t; do cat arquivo2 | cut -d " " -f$i; done done

Aqui funcionou direitinho.



3. Não resolvido

Rodrigo Cahanovich
rodrigo_bocaum

(usa Debian)

Enviado em 22/10/2009 - 07:44h

Então guri, testei esse script e o mesmo não me trouxe do jeito q necessito.
Como disse, no caso, não posso colocar um valor fixo no meu laço de repetição (seq 1 5), como você fez porque o numero de campos nunca é fixo nos arquivos.
Fico no Aguardo
Att


4. Resolvido

Rodrigo Cahanovich
rodrigo_bocaum

(usa Debian)

Enviado em 22/10/2009 - 08:04h

Consegui ja guri. Fiz um testes com o cut (que não tinha pensando nele), e fiz dessa forma

for i in $(cat arquivo1); do echo $i; let j++; cat arquivo2 |cut -d " " -f$j; done






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts