このシェルスクリプトは、指定したディレクトリ内のすべてのExcelファイル(.xlsx形式)をCSVファイルに変換し、別のディレクトリに保存します。変換にはPythonの xlsx2csv ライブラリを使用します。
事前準備
1. Pythonのインストール
Pythonがシステムにインストールされていることを確認してください。
2. xlsx2csv ライブラリのインストール
xlsx2csv は、ExcelファイルをCSVに変換するためのPythonライブラリです。以下のコマンドでインストールできます。
| |
シェルスクリプト
以下の内容を .sh ファイル(例: excel_to_csv.sh)として保存します。
| |
スクリプトの実行方法
- 上記のスクリプトを
excel_to_csv.shなどの名前で保存します。 - スクリプトに実行権限を付与します。
1chmod +x excel_to_csv.sh - スクリプトを実行します。
1./excel_to_csv.sh
スクリプトの解説
#!/bin/bash: このスクリプトをBashシェルで実行することを指定します。input_dir,output_dir: 変換元と変換先のディレクトリパスを定義します。${HOME}はユーザーのホームディレクトリを表します。mkdir -p "${output_dir}": 変換後のCSVファイルを保存するディレクトリが存在しない場合に作成します。-pオプションは、親ディレクトリも同時に作成し、既に存在してもエラーにしないようにします。convert_excel_to_csv()関数:local: 関数内で定義された変数がローカル変数であることを示します。basename "${input_file%.*}": ファイル名からパスと拡張子を除去します。python3 -m xlsx2csv "${input_file}" "${output_file}":xlsx2csvモジュールを実行し、ExcelファイルをCSVに変換します。if [ $? -eq 0 ]: 直前のコマンドの終了ステータス$?が0(成功)かどうかをチェックします。
for excel_file in "${input_dir}"/*.xlsx; do ... done:input_dir内のすべての.xlsx拡張子のファイルをループ処理します。if [ -f "${excel_file}" ]; then ... fi: ループ内で見つかったものが実際にファイルであるかを確認します。これは、*.xlsxにマッチするファイルがない場合にループが1回実行されてしまうのを防ぐためです。
このスクリプトは、Excelファイルを一括でCSVに変換する際に役立ちます。