ファイルからすべてのCRLFを削除する方法(LFに置き換えず)

ファイルからすべてのCRLFを削除する方法(LFに置き換えず)

\r\nたとえば、ファイルから改行(CRLF)が続くすべてのキャリッジリターンを削除したいとします。どうすればいいですか?dos2unixCRLFをLFに置き換えるため使用できません。以前に存在しなかったtr項目も置き換えられるため使用できません。どうすればいいですか?\n\r

ベストアンサー1

sed ":a;/\r$/{N;s/\r\n//;b a}"

'\r'これは最後に(後に)があるすべての行と一致します'\n'。その行では、最初に入力の次の行を追加し(間に区切り文字を入れている'\n間)、結果を空の文字列に置き換えてから、"\r\n"最初に戻り、パターンスペースの新しい内容が一致しないことを確認します。また偶然。

'\r'説明に従って:ファイルから他の項目を削除するには、CRLFの組み合わせを削除してから追加します。

sed ":a;/\r$/{$!N;s/\r\n//;t a};s/\r//g"

おすすめ記事