dos2unix

改行コードの変換と上書きモードについて。あるいは iconv と nkf に見る思想の違い – 玉虫色に染まれ!

iconv と g_convert については以前書いたけど
そういえば改行コードを考えていなかった。
g_convert | PaePoi

SHIFT-JIS じゃなく CP932…
は置いておいて、コードでヤルなら自力しか無さそうだ。

しかし dos2unix なんて便利なコマンドがあったのね。

よくわかんないので早速 man を見てみる。
どうやら基本的に CRLF を LF に置き換えるコマンドらしい。
特定の文字コードは変換もするっぽいけど CP932 は当然無いな。

–remove-bom が default で有効のようだ。
うっ、コレも考えていなかった。
UTF-8 に BOM を付けるあの Windows の最悪仕様を忘れていた!
BOM を付けると PHP が動かないとか色々あるのよ。

本当に BOM を削除してくれるか試してみよう。
使い方はパイプで渡すと標準出力へ、引数に渡すと上書きみたい。

SeeMe というアプリを C# で作っていた頃のファイルを引っ張り出して。
そう、Visual Studio やメモ帳は勝手に BOM を付けてしまうんです。
特にメモ帳は BOM の有無のみで UTF-8 を見分ける糞っぷり。

dos2unix

見事 CRLF が LF になり BOM が削除された。
上書きなのでワイルドカードでまとめて変換も簡単、これはいい。
つか Windows はいいかげん BOM をヤメろよと。

しかし nkf ってマジで今でもメンテされているんですね。
nkf Network Kanji Filter プロジェクト日本語トップページ – SourceForge.JP