"^M" とは何か、その修復方法は?

"^M" とは何か、その修復方法は?

Vimでファイルを開くと、奇妙な^M文字が表示されます。

残念ながら、世界で最も人気のある検索エンジンはクエリの特殊文字をうまく処理できないため、ここで質問します。

  • この^M役割は何ですか?

  • そこまでどのように行きましたか?

  • どのように削除しますか?

答え1

^Mキャリッジリターン文字です。これを見ると、行末がキャリッジリターン/改行ペアで表示されるDOS / Windows環境と、行末が単一の改行文字で表されるUnix環境に由来するファイルを見ているは​​ずです。

読むこの記事詳細については、Wikipediaのトピックを参照してください。新しいチーム

この記事さまざまな行末マークを持つファイルを透過的に編集するようにvimを設定する方法について説明します。

ファイルの末尾に特定の行があり、^Mそれらを削除するには、Vimで次を使用します。

:s/^M$//

(この内容を挿入するにはCtrl++V Ctrlを押します。)M^M

答え2

より簡単な方法は、次のコマンドを使用することです。

dos2unix filename

このコマンドはパスパターンでも機能します。

dos2unix path/name*

それでも問題が解決しない場合は、別のモードを試してください。

dos2unix -c mac filename
  • -c変換モードを設定します。ここで、CONVMODE は次のいずれかです。ascii, 7bit, iso, macデフォルト値ascii

答え3

これは私にとって効果的です

:e ++ff=dos 

:e ++ff=dos コマンドは Vim にファイルを再読み込みするよう指示し、dos ファイル形式を強制します。 VimはCRLFとLFのみの行末を削除し、バッファに各行のテキストのみを残します。

それから

:set ff=unix 

ついに

:wq 

答え4

特殊文字を入力せずにSed内部ソリューション(コピーすると機能します):

sed -i -e "s/\r//g" filename

説明する:

-i: in-place
-e: regular expression
\r: escaped carriage return
/g: replace globally

関連情報