スプレッドシートを一括でダウンロードしたのを、CSVに変換したいと思った。
ざっと60個ぐらいあったので、手でやりたくなかった。
シェル芸は苦手意識あったけど、やってみた。
本当はもっとキレイにかけるんだと思うが、とりあえず動作はするのでよしとする。
変換コマンドのインストール
pip install xlsx2csv
該当ディレクトリに移動して実行
ls |xargs -n 1 sh -c 'path=$0; xlsx2csv $0 ${path//.xlsx/.}csv'
一応、補足しておくと、
lsで一覧を出して、その引数を xargs に -nの数ずつだけ(つまり1)引数として渡す。
配列の添字と一緒で、$0でアクセスできる。
pathという変数に一回引数を入れておいて、${path//.xlsx/.}
でファイル名のreplaceを行って、.xlsx
をなくして、CSVをつける。
説明忘れてたけど、xlsx2csvの基本構文はこんな感じ↓。
xlsx2csv <xlsx_file_path> <csv_file_path>
なので、ループで
xlsx2csv 1.xlsx 1.csv
xlsx2csv 2.xlsx 2.csv
xlsx2csv 3.xlsx 3.csv
xlsx2csv 4.xlsx 4.csv
みたいな処理がされてると思ってもらえればいい。
(実際にはファイルネームをちゃんと見てやってるので、名前が連番になってる必要はない)