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

[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."
> > ------------------------------
> ------------------------------------


reply via email to

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