行末を変換するためにd2u
を使用しています。 Puppy Linuxをインストールした後、d2u
ではなくdos2unix
が付属していることに気付きました。その後、デフォルトでUbuntuが両方とも欠落していることに気付きました。
行末を変換する別の方法は何ですか?
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="^$";ORS="";getline;gsub("\r","");print>ARGV[1]}' file
改行を追加するには:
awk 'BEGIN{RS="^$";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file
いくつかのオプション:
tr
を使用tr -d '\15\32' < windows.txt > unix.txt
または
tr -d '\r' < windows.txt > unix.txt
Perl
を使用Perl -p -e 's/\r$//' < windows.txt > unix.txt
sed
を使用sed 's/^M$//' windows.txt > unix.txt
または
sed 's/\r$//' windows.txt > unix.txt
^M
を取得するには、CTRL-V
と入力してからCTRL-M
と入力する必要があります。