miyohideの日記

技術的なメモなどを記しています

2018年11月8日(木)

寒くなったり暖かくなったり雨降ったり。もう、体調ボロボロですよ。

改行コード変換

ひょんなことから改行コードがCRLFなものとLFなものとで混在しているものからCRLFに統一する必要性に迫られまして。

最初はgsubでLFなものを変換すればOKでしょって思っていたのですが...

[1] pry(main)> "aaa\nbbb\r\nccc\n".gsub("\n", "\r\n")
=> "aaa\r\nbbb\r\r\nccc\r\n"

ありゃ、これだと元々CRLFなものがCRLFLFに変換されちゃう。

う〜ん。というわけでTwitterでつぶやいたら早速回答が。

なるほど。正規表現でCRLFとLFの両方をORで結びつければよいのか。やってみた。

[1] pry(main)> "aaa\nbbb\r\nccc\n".gsub(/\r\n|\n/, "\r\n")
=> "aaa\r\nbbb\r\nccc\r\n"

よかったよかった。