Só no AWK, pra estragar minha solução gambiarrenta: Créditos "waldner" do #awk @ freenode:
[r...@cerebro ~]# cat x 1;2;3;4 5;6;7;8 [r...@cerebro ~]# awk -F\; '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(i=1;i<=NF;i++){line=s="";for(j=1;j<=NR;j++){line=line s a[j,i];s=";"};print line}}' x 1;5 2;6 3;7 4;8 [r...@cerebro ~]# -- Flávio do Carmo Júnior aka waKKu 2009/5/25 Flavio Junior <bil...@gmail.com> > Fiz uma melhoria naquela ideia anterior... > > Da uma olhada, qualquer duvida pergunta ai: > > [r...@cerebro ~]# cat x > 1;2;3;4 > 5;6;7;8 > [r...@cerebro ~]# JMP=$(awk '{print $1/2}' <(tr ";" "\n" <x | wc -l)) > [r...@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 > [r...@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 <ronaldo_...@yahoo.com.br> > > >> >> 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." >> ------------------------------ >> >> > > [As partes desta mensagem que não continham texto foram removidas]