優れたソフトウェアと実用的なチュートリアル
LinuxでWindowsファイルから\rを削除する方法
リナックスvimで書かれたファイルtest.txtをコピーして窓WindowsでLinuxシェルスクリプトを作成し、それをLinuxにコピーすると問題が発生します。問題は改行体に^M!
Unixシステムでは、各行は「<换行>"、つまり "\n";
Windowsでは、各行は「<换行><回 车>つまり、「\n\r」です。
直接的な結果として、Unix システムのファイルを Windows で開くと、すべてのテキストが 1 行になります。
Windows のファイルを Unix で開くと、各行の末尾に余分な ^M 記号が付くことがあります。
vimを使って処理する
vimコマンドモードで、%s/^M$//gと入力します。
Enter キーを押すと、ファイル内のすべての ^M 文字が自動的に削除されます。
では、このコマンドはどういう意味でしょうか? % はファイル全体に一致することを意味し、s は置換を意味し、^M は Ctrl + V Ctrl + M を使用して入力する必要があります。M の後の $ は行末の内容に一致することを意味し、最後の g は各行の一致した内容を置き換える必要があることを意味します。
コマンドの意味を理解すれば、より柔軟に使いこなせるようになります。例えば、ファイル内のVimをすべてVIMに置き換えたい場合は、:%s/Vim/VIM/gのようなコマンドを使用します。
方法1: :%s/^M//g
コマンドモードでは、%s/^M//gと入力し、Enterキーを押して置換します。
「^M」の入力は、それぞれ「Ctrl+v」と「Ctrl+M」によって生成されることに注意してください。
方法 2::set fileformat=unix
viでテキストファイルを開く
vi 編集するファイルの名前
コマンドモードで入力する
:set ファイルフォーマット = unix
:w
方法3: sedツールを使用する
sedツールの使用
sed 's/^M//' ファイル名 > tmp_filename
方法4: tr -d '\r'
もちろん、Windows では復帰文字に余分な '\r' があるため、'\r' を削除することで次のことも実現できます。
tr -d '\r'
方法5: dos2unixコマンド(最もよく使われる方法)
dos2unix コマンド:
dos2unix 変換するファイルの名前
ファイルを直接 Unix 形式に変換する
上記の方法により、Windows で編集されたファイルを Linux で読み取れるファイルに変換できます。