2012-02-13 63 views
0

我有一個將東西輸出到文件的Cygwin腳本。我唯一的問題是它總是使用\ n「lf」行尾而不是\ r \ n「cr-lf」。我想要替換它們,或者只是讓cygwin總是輸出\ r \ n來換行結尾。用文本文件中的cr-lf替換lf Cygwin

我試過以下兩個命令,無法在腳本中使用。

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

回答

0

您正在使用Windows和Linux文件結尾的奇怪組合指定unix2dos的路徑。

如果你從Windows命令外殼調用它,使用:

unix2dos d:\temp.txt 

如果您是從在Cygwin調用它,或Cygwin的shell腳本或類似的,使用此:

unix2dos /cygdrive/d/temp.txt 
1

您的unix2dos呼叫應該工作。你是否得到某種錯誤?

Cygwin安裝程序有一個選擇默認行結束約定(DOS或Unix)的選項,儘管它可能只在新安裝過程中顯示 - 我不記得手動。

+0

不,沒有錯誤。我甚至可以在最後一個命令之前放置unix2dos調用,並且最後一個命令仍然有效。 – Ian 2012-02-13 23:53:08

+0

所以你說這似乎什麼都不做?如果你手動運行它會怎麼樣?你應該看到類似'dos2unix的消息:將文件d:/temp.txt轉換爲Unix格式......「 - 是嗎? – jjlin 2012-02-13 23:56:31

+0

如果我手動運行unix2dos命令,它確實有效。 – Ian 2012-02-14 00:00:30