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

  Varie

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

Lascia un commento

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