Skip to content

Instantly share code, notes, and snippets.

@sasasin
Created April 20, 2024 10:53
Show Gist options
  • Save sasasin/ede74bb51aef815d6bbb579a4c50367c to your computer and use it in GitHub Desktop.
Save sasasin/ede74bb51aef815d6bbb579a4c50367c to your computer and use it in GitHub Desktop.
Windows版KindleアプリのXMLから購入年月日順にASINを抜き出すやつ
#!/bin/bash -e
# Windows版Kindleアプリは、購入済みKindle蔵書一覧をXMLファイルとしてローカルに置く。
# XML から JSON に簡易に変換できる CLI ツールとして dasel を利用している。
# https://daseldocs.tomwright.me/
# dasel は凝ったクエリは未だ jq ほどには記述できないので、 dasel からの出を jq で加工している。
# 依存ツールは scoop でインストールできる。
# sort,tr,awk,tailなどUNIXコマンドは Git Bash で入れることにしている。趣味に合わせて好きにしたらよい。
# scoop install main/git
# scoop install extras/dasel
# scoop install main/jq
# この作例では、購入年月日順にASINを取り出している。
dasel select \
-f ~/AppData/Local/Amazon/Kindle/Cache/KindleSyncMetadataCache.xml \
-r xml -w json -s '.' \
| jq -r '.response.add_update_list.meta_data[] | select(.purchase_date !="") | [.purchase_date, .ASIN] | @csv' \
| sort \
| tr -d '"' \
| awk 'BEGIN{FS="T"}{print $1 "," $0}' \
| awk 'BEGIN{FS=","}{print $1 "," $3}' \
| awk 'BEGIN{FS=","}{print $2}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment