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


11

trはよりコアな方法であると思います、それゆえおそらく与えられたファイル内のものを置き換えるより速い方法でしょう。

ただし、trは等しい量の文字のみを置き換えることができます。意味...

2文字は2文字でのみ置換できます。つまり、置換を意味します

\r\n\nは問題外ですtr

次善の選択肢はsed何ですか?

trに機能がないことを考える\r\n\n、sedはファイルで置き換える最もコアで最速の方法ですか?

可能な場合は例を示します。


「Most Core」とはどういう意味ですか?
キース・トンプソン

回答:


23

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

sed 's/\r$//'

同じ方法でを使用できます。tr削除する必要があるのは\r次のとおりです。

tr -d '\r'

ただし、これによりのすべてのインスタンスが削除されますが\r、その後にが続く必要はありません\n


2
これら2つは同一ではありません。1つ目は '\ r \ n'を '\ n'で(効果的に)置き換えますが、2つ目はすべての '\ r'を削除します。改行がテキストファイルに表示されるのは、行末以外の場合はまれですが、発生する可能性があります。
AMS

4

または使用 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


これはOPリストのプログラムではありませんが、私の意見では、この仕事を行う最もクリーンな方法です。私はそのような変換が必要になるたびに個人的に使用します。
2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.