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á
Eu ia responder por awk, porém optei por um one-liner mais criativo (mas
provavelmente não tão eficiente qto o awk). Veja isso:
$ paste -d' ' <(sed '/^ *$/,$d' lixo) <(sed '1,/^ *$/d' lixo)
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Floripa turma Shell 12/04 http://www.seventr
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 shell-script@yahoogrupos.com.br, Darlon V
O meu 'split' split (GNU coreutils) 7.4
não tem a opção -p, como fazer então?
--- Em shell-script@yahoogrupos.com.br, Darlon Vasata 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 x