[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