Come rimuovere con Vi/Vim il carattere ^M alla fine dei file

Home » Varie » Come rimuovere con Vi/Vim il carattere ^M alla fine dei file
Varie Nessun commento

Vi sarà capitato in sistemi Unix/Linux di aprire file di testo, script etc, e trovare alla fine di ogni riga il carattere ^M, che diversamente da quanto si può pensare non è qualcosa di inserito erroneamente, ma è il carriage return, cioè il ritorno a capo, per come, diversamente dai sistemi Windows, viene gestito nella codifica dei sistemi UNIX e Linux, e che corrisponde alla combinazione di tati CTRL+M.

Per rimuovere i caratteri ^M alla fine di ogni riga mediante l’uso di Vi (o Vim), basta usare il seguente comando nella modalità comando, cioè la modalità di avvio di vi/vim, ottenibile tramite la pressione del tasto ESC:

:%s/^V^M//g

Il carattere ^V è dato dalla combinazione di tasti CONTROL-V, mentre il carattere^M si ottiene mediante la pressione dei tasti CONTROL-M. Ottenendo così il seguente output:

:%s/^M//g

Stiamo così dicendo al nostro sistema UNIX/Linux di effettuare una ricerca e sostituzione di una espressione regolare (con %s) della prima espressione, e quindi il carattere ^M (il cui escape è fatto con ^V), con la seconda espressione, quindi nulla, cioè quanto riportato il secondo ed il terzo slash, il tutto deve essere fatto globalmente, cioè per ogni occorrenza (come riportato dalla g).

LEAVE A COMMENT

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.