テキストファイルの改行をWindows形式とUnix/Linux形式の間で変換するにはどうすればよいですか?
* nix環境がありますが、Windowsスタイルの改行でデータをインポートおよびエクスポートする必要があります。これを行うための標準的なユーティリティまたはコマンドがあると思いましたが、それを見つけることができないようです。
おそらく、ディストリビューションに応じて、dos2unix
、unix2dos
、todos
、またはfromdos
を探しています。 Ubuntu-Debianパッケージtodos
/fromdos
tofrodosパッケージの一部としてメモリから。
1つのオプションは、コマンドラインで_unix2dos
_(および戻るには_dos2unix
_)を使用することです。
もう1つは、テキストエディターを使用する方法です。
vi :: set ff = dosの場合、行末をdos行末に設定します。
emacsの場合:C-x [ENTER] f dos [ENTER]
お気に入りのGUIベースのエディター(jeditなど)については、マニュアルまたはGoogleを確認することをお勧めします。
最後に、テキストエディタを使いたくない場合は、より一般的なユーティリティなどを使用してそれを行います(またはunix2dosをインストールしていません)。
_tr -d '\r' < infile > outfile
_ Windowsから移動-> Unixawk 'sub("$", "\r")' unixfile.txt > winfile.txt
からUnixに移動-> Windows tr
はUnixからWindowsに移動できないため。
Vimで編集し、set fileformat
コマンド。
MS-DOS/Windows(CR + LFブレーク)から* nix(LFのみブレーク)
:set fileformat=unix
:wq
* nixからMS-DOS/Windows
:set fileformat=dos
:wq
これは、WindowsをUnixの行末に変換するためにChealionと同様に使用するものです。
tr -d \\015 < windows > unix
POSIXでこれを行うのは注意が必要です。
POSIX Sed は\r
または\15
をサポートしていません。たとえあったとしても、インプレースオプション-i
はPOSIXではありません
POSIX Awk は\r
および\15
をサポートしていますが、-i inplace
オプションはPOSIXではありません
d2uおよびdos2unixは POSIXユーティリティ ではありません、ただしexは
POSIX ex は\r
、\15
、\n
または\12
をサポートしていません
改行を削除するには:
awk 'BEGIN{RS="\1";ORS="";getline;gsub("\r","");print>ARGV[1]}' file
改行を追加するには:
awk 'BEGIN{RS="\1";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file