如何從不存在 dos2unix、perl、tr 和 sed 的檔案中刪除 Ctrl-M?

如何從不存在 dos2unix、perl、tr 和 sed 的檔案中刪除 Ctrl-M?

假設您正在一台非常舊的 unix 伺服器上工作,其中dos2unix不存在、 perltr和。sed如何將文件從DOSUNIX格式?

答案1

我認為您指的是刪除行尾的插入符號-M。您可以使用 vi 中的搜尋和替換來執行此操作。

在 vi 中我通常這樣做:(其中“^”代表 CTRL):

:%s/^V^M//g

螢幕上顯示為:

:%s/^M//g

答案2

tr沒有或的伺服器sed必須非常舊,或缺少一些基本命令。希望ed就在那裡;它存在於Unix第一版

ed /path/to/file
1,$s/^V^M$//
w
q

其中^V^M表示先鍵入Ctrl+ V,然後鍵入Ctrl+ M(輸入文字換行符號)。如果您知道所有行都以 CR LF 結尾,則可以使用1,$s/.$//它(不加區別地刪除每行的最後一個字元)。

相關內容