Rimuovere i ^M dai file generati su Windows

Rimuovere i ^M dai file generati su Windows

Uno dei problemi classici quando si importano dei file da Windows su una macchina Unix, e quindi anche su Linux, Bsd o Mac, è che i terminatori di riga nei file di testo sulle varie piattaforme sono diversi.

Windows utilizza una sequenza di due caratteri dal codice ASCII 13 e 10 (0x0d e 0x0a in esadecimale) , cioè Carriage return + Line feed, mentre i sistemi Unix-like ne usano solo uno, solitamente il Line feed.

Accade quindi che quando si visualizzano file di testo ad esempio su Linux, tutte le righe finiscano con un fastidioso "^M" che in realtà è la visualizzazione sul terminale del carattere Ctrl+M, che corrisponde al codice ascii 13, cioè Carriage return. E' tipico ad esempio quando si apre un file .php creato su una macchina Windows con un editor di testi su Linux, vedere alla fine di ogni riga i famigerati ^M.

Per fortuna, grazie al comando tr eliminare questi caratteri è facilissimo. Ad esempio:


$ tr -d \\r < dosfile > newfile

Currently there are no comments, so be the first!