2015-01-07 12 views
8

Come si converte un singolo file con ritorni in linea crlf per ottenere il ritorno di lf line?Come sostituire crlf con lf in un singolo file

git gestisce già correttamente crlf per la conversione lf automatica per i file quando li sposto in un repository remoto, ma in questo caso specifico non sto facendo push a un repository. Piuttosto, sto caricando un file, utilizzando un campo file su un modulo HTML, in un sito Web che richiede che il file abbia i ritorni su linea lf. Quindi devo essere in grado di convertire questo file singolarmente.

I miei disponibili strumenti potenzialmente utili disponibili su questo computer sarebbero git e Dreamweaver CC 2014.1. (Immagino che Word, Wordpad e Blocco note non siano opzioni valide, ma sono aperto alla correzione.)

Sono su Windows 7 e utilizzo i comandi git line.

risposta

9

L'installazione git su Windows include di solito lo strumento dos2unix.

dos2unix <file> 

ma nel tuo caso si dovrebbe usare .gitattributes per evitare che il file venga convertito su Windows.

Un file .gitattributes può assomigliare a questo

*.vcproj eol=crlf 
*.sh  eol=lf 

Dal .gitattributes documentation

impostata sul valore stringa "LF"

Questa impostazione forze Git per normalizzare i fine riga a LF al check-in e impedisce la conversione a CRL quando il file viene estratto.

Basta commettere il file .gitattributes e il file sarà checkout su ogni impianto con LF fine riga.

+1

Usa 'echo" $ (perl -pe 's/\ r \ n? //' nomefile> nomefile' se non hai dos2unix. –

+0

@ René Link, grazie, .gitattributes ha funzionato come soluzione permanente. –

1

Word e wordpad sono da evitare! MAI prova a modificare del codice con esso, aggiungeranno il codice aggiuntivo per il file.

Per convertire la fine linea, è sufficiente utilizzare Notepad++ o Scite, quindi scegliere la fine del file: Windows, Mac, Linux.

Ecco un esempio utilizzando Scite:

scite

2

Per convertire da testo in stile Windows per il testo in stile Unix:

perl -pe 's/\r$//g' <windows_file.txt> unix_file.txt 

Per convertire da testo in stile Unix di testo in stile Windows:

perl -pe 's/(?<!\r)\n/\r\n/g' <unix_file.txt> windows_file.txt 

Questa "Unix-to Il comando "Windows" è "sicuro", con il quale intendo che non aggiungerà ulteriori Ritorni a capo su un file che è già in formato Windows. Spero che qualcuno ne possa approfittare.

Problemi correlati