技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

サクラエディタ:UNIXの改行コード(LF)をWindowsの改行コード(CRLF)へ変換(改行コード混在考慮)

改行コードが混在しているファイルについて、UNIXの改行コード(LF)をWindowsの改行コード(CRLF)へ変換する(統一する)のに意外と頭を使ったので、メモします。
下記のマクロを使えば変換ができます。
 
【マクロ】
・LF→CRLF.mac
S_ReplaceAll('([^\\r])\\n', '${1}\\r\\n', 60); // すべて置換
S_ReplaceAll('^\\n', '\\r\\n', 60); // すべて置換
S_ReDraw(0); // 再描画

【説明】
・単純に\nを\r\nにするだけだと、元から\r\nの行が\r\r\nになってしまう。
・マクロの1行目で、\r\n以外の\nを\r\nに置換している。
 ()と${1}を使うことで、文末の一文字が消えるのを回避する。
・文頭が\nである行(空行)については、マクロの2行目で対応する。