2012-02-13 8 views
0

ファイルに出力するCygwinスクリプトがあります。私の唯一の問題は、\ r \ n "cr-lf"の代わりに常に\ n "lf"行末を使用することです。私はそれらを置き換えるか、またはCygwinに行末の出力を常に出力させたい。テキストファイルCygwinでlfをcr-lfに置き換えます。

スクリプト内で次の2つのコマンドを使用してみました。

unix2dos d:/temp.txt 
sed -i -e 's/\n/\r\n/g' d:/temp.txt 

答えて

0

unix2dosへのパスは、WindowsとLinuxのファイルエンディングの奇妙な組み合わせを使用して指定しています。あなたはCygwinの中からそれを呼び出している場合

unix2dos d:\temp.txt 

、またはCygwinのシェルスクリプトまたは類似のは、この使用します:あなたは、Windowsのコマンドシェルからそれを呼び出している場合

、これを使用

unix2dos /cygdrive/d/temp.txt 
1

unix2dosコールが機能するはずです。何らかのエラーが発生していますか?

Cygwinインストーラには、新しいインストール時にのみ表示されるかもしれませんが、デフォルトの行終了規則(DOSまたはUnix)を選択するオプションがあります。

+0

いいえ、エラーはありません。私は最後のコマンドの前にunix2dosコールを置くことさえでき、最後のコマンドはまだ動作します。 – Ian

+0

だからあなたは何もしないようだと言っているのですか?手動で実行するとどうなりますか? 'dos2unix:ファイルd:/temp.txtをUnix形式に変換しています... 'のようなメッセージが表示されます。 – jjlin

+0

unix2dosコマンドを手動で実行すると正常に動作します。 – Ian

関連する問題