各改行文字の前にキャリッジリターンを追加するには?

各改行文字の前にキャリッジリターンを追加するには?

新しい行でのみ機能するファイルがあり、すべての新しい行で機能するには\nこのファイルが必要です。\r\nどうすればいいですか?

たとえば、Vimを使用してこの問題を解決しましたが、:%s/\n/\r\n/gスクリプトまたはコマンドラインアプリケーションを使用したいと思います。どんな提案がありますか?

sedorを使ってthisを見つけようとしましたが、grepエスケープシーケンスの回避策にすぐに混乱しました(私はこのコマンドに最初に触れました)。

興味があれば、このアプリケーションは私の質問/回答に関連しています。ここ

ベストアンサー1

あなたはそれを使用することができますUNIX2DOS(Debian で発見):

unix2dos file

この実装は、CRすべてのsの前にaを挿入せず、まだ1が前に来ていないsのみをLF挿入し、バイナリファイル(0x0 -> 0x1fの範囲のバイト値を含むファイルを除く)をスキップします。 、、、または)。LFCRLFFFTABCR

または以下を使用してくださいsed

CR=$(printf '\r')
sed "s/\$/$CR/" file

または以下を使用してくださいawk

awk '{printf "%s\r\n", $0}' file

または:

awk -v ORS='\r\n' 1 file

または以下を使用してくださいperl

perl -pe 's|\n|\r\n|' file

おすすめ記事