dos2unix、perl、tr、およびsedが存在しないファイルからCtrl-Mを削除する方法は?


9

あなたは非常に古いUNIXサーバーどこで作業していると仮定しdos2unixperltr、およびsed存在しません。どのようにしてファイルをDOSからUNIX形式に変換できますか?


sedは許可されますか?
elmarco

@elmarco:いいえ:(
Hemant

9
UNIXサーバーは何歳でなくてはtrなりsedませんか?sedis old ........ iirc、
xenoterracide

1
でしょうexed、そのようなシステム上で利用できるように?私はそれを呼び出すwould'nt UNIX全く存在しない場合trまたはsed
MattBianco

3
違うsed?本当に!?興味津々ですが、システムとは何ですか?GillesとMattBiancoが指摘しているように、おそらくed少なくともそれはまだあるでしょう。
ミケル2011年

回答:


12

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

viでは通常、次のようにします(「^」はCTRLを表します):

:%s/^V^M//g

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

:%s/^M//g

うまくいきました:) これは非常に移植性の高いソリューションだと思います。
Hemant 2010

4
sedを使用して、ファイルをvimしなくても同じことを行うことができます。 M // g 'filename一般に、vimで検索/置換できる場合、コマンドはsedでも実質的に同じです。
ゲイブ。

2
@gabe:sedソリューションは実際にはさらに移植性が高くなります+1 :)
wzzrd

@wzzrd、sedおよびvi両方ともPOSIX指定されており、そのviコマンドはVim拡張機能を使用しません。
ワイルドカード

@jjclarkson ^V「^ M」とはどういう意味ですか?
cokedude

6

サーバーなしtrsed本当に古い、またはいくつかの基本的なコマンドが欠落しなければならないであろう。うまくいけばedあります。Unix初版に存在していました。

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

ここ^V^M手段タイピングCtrl+ VついでCtrl+ M(リテラル改行を入力します)。すべての行がCR LFで終わることがわかっている場合は、1,$s/.$//代わりに使用できます(各行の最後の文字を無差別に削除します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.