Firefoxのplaces.sqliteからGoogleの検索結果をDELETEするShellを書きました
仕事なり私用なりネットをするときはVimperatorの:[tab]openで履歴を辿ることが多いのですが、リストアップされる履歴にGoogleの検索結果があると本来表示して欲しい履歴が埋もれてしまい少々不便に感じていました。
そこで、Firefoxの履歴が保存されているplaces.sqliteからGoogleの検索結果に該当するレコードをDELETEするShellScriptを書いてみました。
#! /bin/sh # Firefoxが起動しているとplace.sqliteはlockがかかり更新(DELETE)できないので、起動チェック=>起動していたらスルー if [ `ps -A | grep firefox-bin | wc -l`==0 ]; then sqlfile='/tmp/clean_places_sqlite.sql' # 削除したいurlの一部 words=" www.google.com/search www.google.co.jp/search " for word in ${words} do # 削除対象となるテーブルは moz_historyvisits, moz_favicons, moz_places echo "DELETE FROM moz_historyvisits WHERE moz_historyvisits.place_id IN (SELECT moz_places.id FROM moz_places WHERE moz_places.url LIKE '%${word}%'); DELETE FROM moz_favicons WHERE moz_favicons.id IN (SELECT moz_places.favicon_id FROM moz_places WHERE moz_places.url LIKE '%${word}%'); DELETE FROM moz_places WHERE url LIKE '%${word}%';" >> ${sqlfile} done # 作成したSQLをsqliteに流します sqlite3 ${HOME}/.mozilla/firefox/default/places.sqlite < ${sqlfile} rm ${sqlfile} fi # Firefoxを起動 firefox
(Firefox3.6.13@Ubuntu10.10にて動作確認)
修正 : shellからfirefoxを起動するように変更
(追記)試用
Firefoxをこのシェルを叩いて実行するようにしました(起動に遅くなったような気がします...)。