LoginSignup
2
5

More than 5 years have passed since last update.

あるディレクトリの中にあるスプレッドシート(.xlsx)を一括でCSVに変換したい

Last updated at Posted at 2017-06-27

スプレッドシートを一括でダウンロードしたのを、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

みたいな処理がされてると思ってもらえればいい。
(実際にはファイルネームをちゃんと見てやってるので、名前が連番になってる必要はない)

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5