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