2015-01-07 16 views
8

crffの行に1つのファイルを変換して、1行返す方法を教えてください。crlfとlfを1つのファイルに置き換える方法

gitは、ファイルをリモートリポジトリにプッシュするとcrlfからlfへの変換を自動的に正しく処理していますが、この特定のケースではリポジトリにプッシュしません。むしろ、HTMLフォームのファイルフィールドを使用して、ファイルが1行返されることを要求するWebサイトにファイルをアップロードしています。だから私はこのファイルを個別に変換できる必要があります。

このコンピュータで利用可能なツールは、gitとDreamweaver CC 2014.1です。 (私はWord、Wordpad、Notepadは実行可能なオプションではないと思っていますが、修正されています)

私はWindows 7上でgit lineコマンドを使用しています。

答えて

9

Windows上のgitのインストールが通常dos2unixツールが含まれています。

dos2unix <file> 

しかし、あなたの場合には、Windows上で変換されるからファイルを防ぐために.gitattributesを使用する必要があります。

.gitattributesファイルは文字列値 "LF" へ.gitattributes documentation

セットからこの

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

のように見えることができます

LFの行末を正常化するために、この設定を強制的にGitファイルがチェックアウトされたときにCRLF への変換を防止します。

.gitattributesファイルをコミットすると、すべてのシステムでLFの行が終了するファイルがチェックアウトされます。 WindowsスタイルのテキストにUnixスタイルのテキストから変換するには

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

:UnixスタイルのテキストにWindowsスタイルのテキストへ変換する

+1

dos2unixを持っていない場合は、 'echo" $(perl -pe '/ \ r \ n?//' filename> filename'を使用してください。 –

+0

@RenéLink、ありがとうございます。ギタリストは永久的な解決策として働いていました。 –

1

ワードとワードパッドは避けてください! NEVERいくつかのコードを修正しようとすると、ファイルのコードが追加されます。

改行を変換するには、Notepad++またはSciteを使用して、ファイルの最後を選択します。Windows、Mac、Linux。ここで

はSciTEのを使った例です:

scite

2

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

この「UnixのツーWindowsのコマンドは「安全」です。つまり、既にWindows形式のファイルに余分なCarriage-Returnを追加しないという意味です。私は誰かがそれからいくつかの使用を得ることを願っています。

関連する問題