大量の .csv.gz を解凍して Shift_JIS (CP932) に変換するワンライナー


たぶん誰も役に立たないワンライナー。

文字コードが UTF-8 な CSV を gzip 圧縮したファイルが大量にあって、これを解凍しつつ Excel で開けるように Shift_JIS に変換したい。

find . -name '*.csv.gz' -exec bash -c 'a=$(echo "$0" | sed -r "s/\.gz$//"); gzcat $0 | nkf -x -s --cp932 > $a; rm -f $0' {} \;
  • Mac だと zcat じゃなくて gzcat を使うというのにハマってしまった 1 (Linux の人は zcat を使って欲しい)
  • find -execxargs みたいなことができるとは知らなかった、これは便利
  • nkf-x オプションを付けないと半角カナが全角カナに変換されてしまう