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

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

Re: [shell-script] Sed - Concaternar linhas alternadas


From: Salviano de Araujo Leão
Subject: Re: [shell-script] Sed - Concaternar linhas alternadas
Date: Wed, 30 Apr 2008 12:16:54 -0300
User-agent: KMail/1.9.9

Em Wednesday 30 April 2008 11:15:13 Tiago Barcellos Peczenyj escreveu:

Valeu Tiago,

Eu tinha feito uma busca no sed1liners, mas passou
desabercebido.

Obrigado

Salviano


> Salviano, veja esta dica [ http://aurelio.net/sed/1liners-ptBR.txt ]
>
>  # une pares de linhas lado a lado (como o "paste")
>  sed 'N;s/\n/ /'
>
> Exemplo
>
> $  sed 'N;s/\n/ /' arquivo
> -1.0000 3.914026 0.0000 7.471841
> -0.9000 3.285307 0.0000 8.272979
> -0.8000 2.110399 0.0000 9.964568
> -0.7000 0.922031 0.0000 12.012098
> -0.6000 -0.153824 4.0433 14.285975
>
> 2008/4/30 Salviano de Araujo Leão <address@hidden>:
> > Ao rodar um programa com saída não formatada ele
> >  gerou um arquivo de dados que deveria ter quatro
> >  colunas, entretanto ele foi gerado da seguinte forma:
> >
> >  -1.0000 3.914026 0.0000
> >  7.471841
> >  -0.9000 3.285307 0.0000
> >  8.272979
> >  -0.8000 2.110399 0.0000
> >  9.964568
> >  -0.7000 0.922031 0.0000
> >  12.012098
> >  -0.6000 -0.153824 4.0433
> >  14.285975
> >
> >  Este arquivo deveria ter a seguinte forma:
> >  -1.0000 3.914026 0.0000 7.471841
> >  -0.9000 3.285307 0.0000 8.272979
> >  -0.8000 2.110399 0.0000 9.964568
> >  -0.7000 0.922031 0.0000 12.012098
> >  -0.6000 -0.153824 4.0433 14.285975
> >
> >  Bom meus conhecimentos de sed são bem limitados,
> >  mas resolvi o problema com o seguinte script:
> >
> >  #!/bin/sh
> >  arq="$1".dat
> >  cat $arq | sed -n "1~2p" > /tmp/impar_$$
> >  cat $arq | sed -n "2~2p" > /tmp/par_$$
> >  mv $arq ${arq}.old
> >  paste /tmp/impar_$$ /tmp/par_$$ > ${arq}
> >  rm -f /tmp/impar_$$ /tmp/par_$$
> >
> >  Entretanto acho que seria possível fazer o mesmo
> >  somente com o sed em uma linha. Se alguém
> >  conhecer uma solução eu agradeço.
> >
> >  Obreigado
> >
> >  Salviano




reply via email to

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