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

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

Re: [shell-script] Re: colunas lado a lado


From: jimmy
Subject: Re: [shell-script] Re: colunas lado a lado
Date: Mon, 5 Apr 2010 10:14:48 -0300
User-agent: Mutt/1.4.2.3i

se o arquivo for pequeno[1] pode-se fazer em puro awk:

  $ awk '/^\s*$/{p=1;getline}p==1{print h[++i],$0;delete h[i]}!p{h[NR]=$0}' 
arquivo

[1] pequeno nesse contexto seria sua memória comportar pelo menos metade
desse arquivo.

On Fri, Apr 02, 2010 at 05:28:56PM -0300, Darlon Vasata wrote:
> Dá pra fazer com o awk:
> 
> awk 'BEGIN[file="0"}/[^$]/{print >> "arq"file}/^$/{file++}' arquivo;  
> paste arq*; rm arq*
> 
> Em 02/04/2010, às 13:46, Sérgio escreveu:
> 
> > O meu 'split' split (GNU coreutils) 7.4
> > não tem a opção -p, como fazer então?
> >
> > --- Em address@hidden, Darlon Vasata <darlonv@...>  
> > escreveu
> > >
> > > Ops!
> > >
> > > Tinha entendido errado o problema no e-mail anterior.
> > >
> > > Segue ae uma solução:
> > >
> > > split -p '^$' arquivo ; paste xaa <(sed '1d' xab); rm xaa xab
> > >
> > >
> > >
> > > Em 01/04/2010, às 23:08, Kurt Kraut escreveu:
> > >
> > > > Aloha,
> > > >
> > > >
> > > > Eu e o Rodrigo Pinto bolamos a seguinte solução:
> > > >
> > > >
> > > >
> > > >
> > > > #!/bin/dash
> > > > input=$1
> > > > temporary1=$(mktemp)
> > > > temporary2=$(mktemp)
> > > > current_temporary=$temporary1
> > > >
> > > > while read line
> > > > do
> > > > if test -z $line
> > > > then
> > > > # echo Achei uma linha em branco.
> > > > current_temporary=$temporary2
> > > > else
> > > > echo $line >> $current_temporary
> > > > fi
> > > > done < $input
> > > > paste $temporary1 $temporary2
> > > >
> > > >
> > > > ### EOF ###
> > > >
> > > > Para poder usar, use: ./nomedoscript.sh input.txt
> > > >
> > > >
> > > > Abraços,
> > > >
> > > >
> > > > Kurt Kraut (listas@...)
> > > >
> > > > 2010/4/1 Sérgio <voyeg3r@...>
> > > >
> > > >>
> > > >>
> > > >> # tenho um arquivo assim:
> > > >> -------------8-----------------
> > > >> joao
> > > >> maria
> > > >> helena
> > > >>
> > > >> um
> > > >> dois
> > > >> tres
> > > >> -------------8-----------------
> > > >>
> > > >> como gerar uma saida assim:
> > > >> joao um
> > > >> maria dois
> > > >> helena tres
> > > >>
> > > >> Lembrando que há uma linha em branco entre os dois blocos de  
> > texto

-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------


reply via email to

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