Skip to content

Instantly share code, notes, and snippets.

@sasasin
Last active May 2, 2022 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sasasin/673490aacfbf0e986ec1def170abfd51 to your computer and use it in GitHub Desktop.
Save sasasin/673490aacfbf0e986ec1def170abfd51 to your computer and use it in GitHub Desktop.
Mac版KindleアプリのXMLから購入年月日順にASINを抜き出すやつ
#!/bin/bash -e
# Mac版Kindleアプリは、購入済みKindle蔵書一覧をXMLファイルとしてローカルに置く。
# XML から JSON に簡易に変換できる CLI ツールとして dasel を利用している。
# https://daseldocs.tomwright.me/
# dasel は凝ったクエリは未だ jq ほどには記述できないので、 dasel からの出を jq で加工している。
# この作例では、購入年月日順にASINを取り出している。
dasel select \
-f ~/Library/Containers/com.amazon.Kindle/Data/Library/Application\ Support/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