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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Sed - Concaternar linhas alternadas
Date: Wed, 30 Apr 2008 11:15:13 -0300

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
>
>  



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

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