2012-11-27 29 views

回答

12

您可以用sed這樣的:

sed -i.bak 's/^M$//' infile.txt 

要鍵入^M,你需要輸入CTRL-V,然後CTRL-M

+0

謝謝。這是我所需要的。我猜infile.txt是要清理的文件嗎?,不知道i.bak是什麼,或許我會去查看手冊,除非你足夠親切來解釋..? –

+0

@HomunculusReticulli:非常歡迎。 sed中的'-i'標誌用於文件的內聯編輯,'-i.bak'用於保存原始輸入文件,擴展名爲.bak,用於安全措施。 – anubhava

+0

'-i.bak'是一個GNU'sed'擴展名,意思是'在原地修改文件,用'.bak'擴展名來備份原文。不過,閱讀手冊仍然是一個好主意。 –

7

OR

dos2unix infile.txt file2.txt .... 

OR

man dos2unix 

瞭解更多詳情。

IHTH

+0

dos2unix在可用的情況下工作,但不幸的是它不適用於所有Unix/Linux版本。 – anubhava

+0

我只有RH linux的經驗,但我認爲所有版本的Linux都有'dos2unix'(很多舊的unix經驗!)。作爲用戶指定的Linux,我認爲它是一個有用的建議。並非所有的'sed's畢竟都支持'-i' ;-)。謝謝,祝你好運。 – shellter

+0

例如,dos2unix在我的Mac上不可用,如果您注意到'-i'在我的答案中是可選的。一個簡單的'sed's/^ M $ //'infile.txt> output.txt'也應該有效。 – anubhava