Google スプレッドシート(共有)を CSV や TSV 形式でコマンドライン(curl)からゲット
2018-02-16-1
[Tips][Programming]
今更ですが、今年は家庭内での様々な用途でグーグルスプレッドシートを活用する所存です。
で、curl や wget を使ってTSV形式でダウンロードできたらスクリプトで処理しやすいなと思い、その方法を調べました。
「google spread sheetでcsvの export urlを出力する - Qiita」より。
スプレッドシートのURL:
curl でダウンロード:
TSV が必要なときは format を tsv にすればOK。
で、curl や wget を使ってTSV形式でダウンロードできたらスクリプトで処理しやすいなと思い、その方法を調べました。
基本
「google spread sheetでcsvの export urlを出力する - Qiita」より。
スプレッドシートのURL:
https://docs.google.com/spreadsheets/d/{sheet_id}/edit#gid={page_id}
curl でダウンロード:
curl -L -o a.csv 'https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={page_id}'
TSV が必要なときは format を tsv にすればOK。
実行例
- 医療費メモサンプル - Google Sheets
https://docs.google.com/spreadsheets/d/1izPxc4jLKUMWiZbtSB_LVHbOfux05zLGfcg_flrHSx8/edit#gid=0
% curl -s -L -o a.tsv 'https://docs.google.com/spreadsheets/d/1izPxc4jLKUMWiZbtSB_LVHbOfux05zLGfcg_flrHSx8/export?format=tsv&gid=0'
% cat a.tsv
日付 誰 項目 金額
2018/1/5 太郎 巨大病院 6460
2018/1/5 太郎 地元薬局 390
2018/1/7 花子 近所整形外科 770
2018/1/10 太郎 隣町歯科 2760
2018/1/12 花子 近所整形外科 770
2018/1/22 花子 近所整形外科 770
2018/1/22 花子 地元薬局 870
2018/2/1 太郎 巨大病院 1040
% tail -n +2 a.tsv | perl -F"\t" -anle '$h{"$F[1]\t$F[2]"}+=$F[3]; END{print map{"$_\t$h{$_}\n"}keys%h}'
太郎 巨大病院 7500
花子 近所整形外科 2310
太郎 隣町歯科 2760
太郎 地元薬局 390
花子 地元薬局 870
