ファイル内の「\r\n」を「\n」に置き換える最も高速かつ最もコアな方法は何ですか?

ファイル内の「\r\n」を「\n」に置き換える最も高速かつ最もコアな方法は何ですか?

trこれはよりコアな方法であり、したがって、特定のファイル内のものを置き換えるためのおそらくより高速な方法であると考えられます。

ただし、tr は同じ数の文字のみを置き換えることができます。つまり...

2文字は2文字にしか置き換えられません。つまり、

\r\n\n論外ですtr

次善の選択肢はsed

tr には機能が不足しているため、sed はファイル内\r\nで置換を行う最もコアかつ最速の方法でしょうか?\n

可能であれば例を挙げていただきたいです。

答え1

を使用するとsed、次のことができます。

sed 's/\r$//'

同じ方法で も実行できますがtr、 を削除するだけです\r:

tr -d '\r'

これにより全てのインスタンス\r。必ずしも が続く必要はありません\n

答え2

または使用dos2unix

例えば:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

置き換えてみる\r\n\n

関連情報