[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Transformar linha em coluna.
From: |
jimmy |
Subject: |
Re: [shell-script] Transformar linha em coluna. |
Date: |
Mon, 25 May 2009 15:52:38 -0300 |
User-agent: |
Mutt/1.4.2.3i |
uma outra saída seria criar um arquivo com o conteúdo de cada linha e
fazer o paste -d\; com eles, usaria bastante I/O mas pouco processamento
e memória.
awk -F\; '{OFS="\n"; $1=$1; print $0 > NR}' arquivo
paste -d\; [0-9]
On Mon, May 25, 2009 at 03:40:58PM -0300, Flavio Junior wrote:
> Fiz uma melhoria naquela ideia anterior...
>
> Da uma olhada, qualquer duvida pergunta ai:
>
> [root@cerebro ~]# cat x
> 1;2;3;4
> 5;6;7;8
> [root@cerebro ~]# JMP=$(awk '{print $1/2}' <(tr ";" "\n" <x | wc -l))
> [root@cerebro ~]# for ((i=1;i<=$JMP;i++)); do sed -n "${i}~${JMP}p" x2; done
> | paste -d';' - -
> 1;5
> 2;6
> 3;7
> 4;8
> [root@cerebro ~]#
>
> Essa é pra qualquer tamanho de arquivo, mas vai executar NR/2 sed's. Sendo
> NR o numero de linhas.
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> 2009/5/25 jimmy <address@hidden>
>
> >
> >
> > On Mon, May 25, 2009 at 09:26:22AM -0300, Pedro Bazzarella da Silva wrote:
> > > Amigos,
> > >
> > > Estou com uma dúvida:
> > >
> > > Tenho um arquivo com o seguinte layout:
> > > 1;2;3;4
> > > 5;6;7;8
> > >
> > > Eu gostaria de transformar o mesmo neste novo layout:
> > > 1;5
> > > 2;6
> > > 3;7
> > > 4;8
> > >
> > > A idéia é trocar linha por coluna.
> > >
> > > Existe algum comando no unix que faça isso direto?
> > >
> > > Abs,
> > >
> > > Pedro Bazzarella
> > > ------------------------------------
> >
> > se o seu arquivo for "pequeno" para o seu hardware, você pode tentar
> > usar esse 1liner:
> >
> > awk -F\;
> > '{for(i=1;i<=NF;i++){a[i,NR]=$i;}}END{for(i=1;i<=NF;i++){for(j=1;j<=NR;j++){ORS=(j==NR)?"\n":FS;print
> > a[i,j];};}}' arquivo
> >
> > ele vai armazenar cada caractere em um array de 2 dimensões onde a
> > posições e o número da linha formam o índice; ao final do processamento
> > do arquivo, ele imprime o conteúdo do array.
> >
> > --
> > "Não manejo bem as palavras
> > Mas manipulo bem as strings."
> > ------------------------------
> ------------------------------------