2008/12/30(火) [n年前の日記]
#2 [prog] Windowsに移植されたdos2unixはないのだろうか
改行コードをCRLF→LFに変換するツールが欲しいのだけど。検索してみても見つからない。batファイルから呼び出す関係上、パイプでファイル内容を渡してリダイレクトできるものが欲しいのだけど…。
dos2unix.exe で検索して見つかったモノは一応あるのだけど。 _こちらのソレ はオリジナルのファイルを上書きしてしまうし。 _こちらのソレ はDOS用、つまりWin32用のソレではないので、DOS窓のサイズがパカパカと変化・画面クリアされて、何かこう微妙なものが。
Microsoft Windows Services for UNIX (SFU)の中にも dos2unix.exe はあるらしいのだが。自分の環境は Windows XP Home なので利用できない。
dos2unix にこだわらず、Windows用の改行コード変換ツールを検索してみたけど、えてしてGUIで操作させるものが多く。batファイル中に含めてパイプで渡して云々、といった使い方ができるものは見当たらず。
dos2unix.exe で検索して見つかったモノは一応あるのだけど。 _こちらのソレ はオリジナルのファイルを上書きしてしまうし。 _こちらのソレ はDOS用、つまりWin32用のソレではないので、DOS窓のサイズがパカパカと変化・画面クリアされて、何かこう微妙なものが。
Microsoft Windows Services for UNIX (SFU)の中にも dos2unix.exe はあるらしいのだが。自分の環境は Windows XP Home なので利用できない。
dos2unix にこだわらず、Windows用の改行コード変換ツールを検索してみたけど、えてしてGUIで操作させるものが多く。batファイル中に含めてパイプで渡して云々、といった使い方ができるものは見当たらず。
◎ nkfのオプション指定を気をつければ使えるみたい。 :
nkf -xLu じゃなくて、nkf -xSsLu にしたら、文字化けしないで済んだ。入出力するファイルはSJISであると明示的に指定しておけばそのまま通してくれる、ということなのかな。
◎ sedも本当は必要ないっぽい。 :
batファイル中で、
できれば、改行コードの変換まで、Perlのワンライナーでやれたら楽なのだけど。
sed -e "/^[ ]*$/d"と指定して空行を削除してるみたいなのだけど。
perl -p -e "s/^\s*$//"でも空行を削除してくれるように見える。タブ文字を入れなくて済む分、こちらのほうが扱いが楽かもしれない。Active Perl を入れて、既に色々と処理をしているので、新規に sed を導入しなくても済むし。
できれば、改行コードの変換まで、Perlのワンライナーでやれたら楽なのだけど。
[ ツッコむ ]
以上です。