web-dev-qa-db-ja.com

dos2unix、Perl、tr、およびsedが存在しないファイルからCtrl-Mを削除するにはどうすればよいですか?

非常に古いUNIXサーバーで作業しているとします。ここでdos2unixPerltr、およびsedは存在しません。ファイルをdosからnix形式に変換するにはどうすればよいですか?

9
Hemant

行末のキャレットMを削除することを指していると思います。これを行うには、viで検索と置換を使用できます。

Viでは通常:(「^」はCTRLを表します):

:%s/^V^M//g

画面に次のように表示されます。

:%s/^M//g
12
jjclarkson

trまたはsedのないサーバーは、本当に古いか、いくつかの基本的なコマンドが欠落している必要があります。うまくいけば、edがあります。 nix初版 に存在しました。

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

ここで、^V^Mは入力を意味します Ctrl+V その後 Ctrl+M (文字通りの改行を入力するため)。すべての行がCRLFで終わることがわかっている場合は、代わりに1,$s/.$//を使用できます(各行の最後の文字を無差別に削除します)。