shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [shell-script] Concatenar colunas de arquivos diferentes


From: Aurelio Marinho Jargas
Subject: RE: [shell-script] Concatenar colunas de arquivos diferentes
Date: Thu, 21 Aug 2003 12:06:23 -0300 (ART)

oi luis,

 --- "Okama, Luis" <address@hidden> escreveu: 
> e ae Aurelio, ele na verdade quer "verticalizar" os dados :))
> mandei 2 solucoes pra ele em pvt, ele esta testando :)
> o q ele quer seria mais ou menos isso:
> 
> file1:
> hdisk1;1;2;3;4;5
> seq2...
> 
> file2:
> hdsik2;a;b;c;d;e
> seq2...
> 
> arquivofinal:
> hedisk1;hdisk2
> 1;a
> 2;b
> 3;c
> 4;d
> 5;e
> ... continua seq2 


mmmmmm, agora melhorou!

uma solução é primeiro juntar todas as
centenas de arquivos em apenas um,
depois trabalhar nele.

os arquivos de teste:

  $ cat lixo1
  hdisk1;1;2;3;4;5
  hdisk1;6;7;8;9;10

  $ cat lixo2
  hdisk2;a;b;c;d;e
  hdisk2;f;g;h;i;j

a primeira ação é transformar cada arquivo em uma grande e
longa linha:

  $ paste -d';' -s lixo1 lixo2
  hdisk1;1;2;3;4;5;hdisk1;6;7;8;9;10
  hdisk2;a;b;c;d;e;hdisk2;f;g;h;i;j

depois, tirar os 'hdiskN' do meio das linhas:

  $ paste -d';' -s lixo1 lixo2 | sed 's/;hdisk[0-9]*;/;/g'
  hdisk1;1;2;3;4;5;6;7;8;9;10
  hdisk2;a;b;c;d;e;f;g;h;i;j

agora basta transformar linhas em colunas. coloquei a saída
do comando anterior num arquivão chamado 'lixo'.

agora com o cut extraimos cada coluna e com o paste essas
colunas viram linhas, obtendo o resultado desejado:

  $ for i in 1 2 3 4 5; do cut -d';' -f$i lixo | paste -d';' -s ; done
  hdisk1;hdisk2
  1;a
  2;b
  3;c
  4;d

é, até que ficou legal :)



=====
-- 
Aurelio Marinho Jargas - Floripa
Veja como foi o Curso de Shell http://aurelio.net/curso/4linux.html
Foto do meu escritorio http://aurelio.net/imagens/escritorio.jpg
Participe de um projeto GNU http://br.groups.yahoo.com/group/txt2tags-br/

_______________________________________________________________________
Desafio AntiZona - Um emocionante desafio de perguntas e respostas que
te dá um Renault Clio, kits de eletrônicos, computadores, notebooks e 
mochilas. Cadastre-se, participe e concorra!
www.cade.com.br/antizona


reply via email to

[Prev in Thread] Current Thread [Next in Thread]