Remover fim de linha a cada "n" linhas [RESOLVIDO]

1. Remover fim de linha a cada "n" linhas [RESOLVIDO]

Fellype
Fellype

(usa Slackware)

Enviado em 02/07/2012 - 16:55h

Olá pessoal!

Eu tenho um arquivo de texto que segue a seguinte estrutura:

informações gerais do arquivo
informações sobre o primeiro conjunto de dados
a1 a2
a3 a4
b1 b2
b3 b4
c1 c2
c3 c4
informações sobre o segundo conjunto de dados
.
.
.

E eu preciso que ele fique com uma estrutura deste tipo:

informações gerais do arquivo
informações sobre o primeiro conjunto de dados
a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4
informações sobre o segundo conjunto de dados
.
.
.

Ou seja, eu preciso remover um caractere de fim de linha a cada "n" linhas (n=2 no exemplo acima) para dados entre duas linhas de referência.
Desde já agradeço pelas sugestões.


  


2. Re: Remover fim de linha a cada "n" linhas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/07/2012 - 17:39h

Olá!

Procurei por uns sites e cheguei a esta conclusão:

sed "1~2 N;s/\n/ /"


Faltam uns ajustes porque no seu caso nada deve ser feito nas duas primeiras linhas e na última.

Depois fale o que houve.


3. Re: Remover fim de linha a cada "n" linhas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/07/2012 - 03:03h

Encontrei outra coisa:

Teste este script e veja se é isto que você queria.
Está em AWK:

#!/usr/bin/awk -f

{
linhas[cont++]=$0;
}

END {

print linhas[0];
print linhas[1];

for(i=2;i<cont-2;i++)
printf ("%s%c",linhas[i],(i%2==1)?"\n":" ");

print linhas[cont-2];
print linhas[cont-1];

}


Instruções básicas:

* salve com o nome de "meuscript.awk";
* use "chmod +x meuscript.awk" prá ele ficar executável;
* use "./meuscript.awk arquivo.txt"

"arquivo.txt" é o seu arquivo a ser modificado.

Se a saída for esta, você manda prá um redirecionador "> " criar o que você solicitou.










4. Re: Remover fim de linha a cada "n" linhas [RESOLVIDO]

Fellype
Fellype

(usa Slackware)

Enviado em 03/07/2012 - 10:31h

Olá Listeiro 037,
A primeira opção que vc postou funciona bem. Valeu pela ajuda.


5. Re: Remover fim de linha a cada "n" linhas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/07/2012 - 14:15h

Também há esta variação:

sed "3~2 N;s/\n/ /"


Ele pega a partir da terceira linha.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts