Como excluir a nova linha antes do EOF em um arquivo texto / csv via bash

0

Abaixo está um exemplo dos dados que estou recebendo no arquivo txt ou csv (visto em EmEditor ):

Noentanto,aúltimalinhaembrancoestácausandoproblemasaocarregaressesdadosemmeusoftware.Precisoterosdadosparecidoscomosseguintes.

Alguém poderia escrever um código para apagar este último comando da linha seguinte e mover o comando do fim do arquivo para a última linha?

    
por Linuxhelpplease 09.09.2015 / 11:09

4 respostas

2

Existem várias maneiras de fazer isso.

com printf :

printf "%s" "$(<file)"

Com perl (use -i para editar o arquivo no local):

perl -pe 'chomp if eof' file

Ou com head (se você tiver certeza de que o último caractere é uma nova linha):

head -c -1 file
    
por 09.09.2015 / 11:16
0

com awk :

awk 'NR > 1 { print prev } { prev = $0 }' file

ou com sed :

sed '$d' file
    
por 09.09.2015 / 11:17
0

Você pode tentar isso

sed 'N; $ s/\n//; P; D;' file
    
por 10.09.2015 / 07:53
0

Isso também deve funcionar, e é um pouco mais legível (na minha opinião preconceituosa):

 awk '{ if ( NR == 1) { printf("%s",$0); } else { printf("\n%s", $0); }}' file
    
por 10.09.2015 / 08:25