2つのbookmarksファイルの差分抽出
1.概要
ubuntu-20.04でFirefoxを利用していますが、bookmarksには多数のフォルダを作成・整理をしてurlの保存をしています。しかし、調べ物をするためにネット検索で一度に多数のurlを調べた場合、どこに保管したのかわからなくなることが度々発生していました。やっと見つけたurlを失ってしまい再度探す都度、良い方法はないかと思っていました。
2.詳細
保管したbookmarksを以前のbookmarksと比較して、差分のurlをテキストファイルとして出力するshellを作成しました。ubuntu-20.04のFirefox版、Windows10のMicrosoft EDGE版を作成しましたが、EDGE版はbatchファイルレベルで簡易なものです。
想定している利用方法は、bookmarksをDocumentsディレクトリに保管します。Firefoxでは、bookmarks-2022-04-28.jsonになります。調べ物をしてurlを追加したので、bookmarks-2022-04-29.jsonを作成します。この2つのbookmarksの差分を取って、テキストファイルを作成します。
(1) Firefox
Firefoxはjson形式で保管されるためjson形式をhtml形式に変換後、差分を取ります。
(a) 必要なモジュールのインストール
sudo apt -y install jq
(b) shell(diffbm.sh)の作成
#!/bin/bash
jq --sort-keys . ${1} > old.txt
jq --sort-keys . ${2} > new.txt
diff old.txt new.txt | grep "uri" | awk '{ print $3 }' > out_bookmark.txt
rm old.txt
rm new.txt
(c) 利用方法
sh diffbm.sh bookmarks-2022-04-40.json bookmarks-2022-04-21.json
(d) 出力結果
out_bookmark.txtに以下のように出力されます。
"https://stedolan.github.io/jq/"
(2) Microsoft EDGE
Microsoft EDGEはhtml形式で保管されるため、直接差分を取ります。
(a) batchファイル(diffbm.bat)の作成
@echo off
echo "Output: out_bookmark.txt"
fc.exe %1 %2 | findstr http > out_bookmark.txt
(b) 利用方法
diffbm.bat bookmarks-2022-04-40.html bookmarks-2022-04-21.html
(c) 出力結果
out_bookmark.txtに出力されます。
batchファイル内でテキスト編集処理が容易ではなく、差分は見栄えが良くありません。
参考
[外部サイト参照]
・jq
コメント
コメントを投稿