Vim: junte linhas substituindo ^ M

0

Eu tenho um arquivo que contém ^M caracteres incorporados. Desejo juntar as linhas no caractere ^M .

ie: mude isto:

 ^M
            être, ^M
            étant, ^M
            été,Indicatif,Présent,suis,es,est,sommes,êtes,sont
 ^M
            être, ^M
            étant, ^M
            été,Indicatif,Imparfait,étais,étais,était,étions,étiez,étaient

para isso:

être,étant,été,Indicatif,Présent,suis,es,est,sommes,êtes,sont
être,étant,été,Indicatif,Imparfait,étais,étais,était,étions,étiez,étaient

Este comando remove o ^M , mas as linhas não são unidas:

%s/\r//g
    
por ardochhigh 14.08.2014 / 15:59

2 respostas

3

^M é um EOL específico do Windows (End Of Line) e consiste em dois caracteres: retorno de carro \r e nova linha \n . Então você deve incluir \ n em seu comando replace também:

%s/\r\n//g

Se você quiser ficar com o comando original replace, primeiro deverá converter o formato EOL do seu arquivo do Windows one para o Unix one. Você pode usar a ferramenta dos2unix para fazer isso:

$ dos2unix fileToConvert

    
por 14.08.2014 / 16:45
3
awk '/\r$/ {sub(/\r$/, ""); printf "%s", $0; next} {print}' file
    
por 14.08.2014 / 20:33

Tags