2015-01-07 43 views
8

如何將具有crlf行的單個文件轉換爲具有lf行返回值?如何在單個文件中用lf替換crlf

當我將它們推送到遠程存儲庫時,git已經正確地處理了crlf以自動轉換爲文件,但在這種特殊情況下,我沒有對存儲庫進行推送。相反,我使用HTML表單上的文件字段將文件上傳到要求文件具有行返回的網站。所以我需要能夠單獨轉換這個文件。

我在這臺計算機上可用的潛在有用的工具是git和Dreamweaver CC 2014.1。 (我猜Word,寫字板和記事本不是可行的選擇,但我打開糾正。)

我在Windows 7上,並使用git行命令。

回答

9

上窗口的GIT中安裝通常包括dos2unix工具。

dos2unix <file> 

但在你的情況,你應該使用.gitattributes,以防止文件被轉換的窗口。

一個.gitattributes文件可以是這樣的

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

.gitattributes documentation

設置爲字符串值 「LF」

此設置強制Git的標準化行結束LF在簽入時,並防止在簽出文件時將其轉換爲CRLF 。

只要提交.gitattributes文件,您的文件將在每個系統上以LF行結尾結算。

+1

如果您沒有dos2unix,請使用'echo'$(perl -pe's/\ r \ n?//'filename> filename')。 –

+0

@RenéLink,謝謝.gitattributes是一個永久的解決方案。 –

1

Word和wordpad是爲了避免! 從不嘗試修改一些代碼,他們會爲該文件添加額外的代碼。

要轉換行結束,您只需使用Notepad++Scite,然後選擇文件結尾:Windows,Mac,Linux。

下面是使用賽特一個例子:

scite

2

從Windows風格的文本轉換爲Unix風格的文本:

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

從UNIX風格的文本轉換爲Windows風格的文本:

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

這種「Unix的TO- Windows「命令是」安全的「,我的意思是它不會將額外的Carriage-Return添加到已經是Windows格式的文件中。我希望有人能從中獲得一些用處。

相關問題