"To było gdzieś w zakładkach, coś z gnome w nazwie, a w tytule były gwiazdki."
Znasz to? Standardowy manager zakładek firefox'a jest fajny, ale nie potrafi wyszukiwać więcej niż jednego warunku. Na szczęście baza to SQLite i przy odrobinie trudu ładnie się obrabia.
moz_places.sh
W skrypcie trzeba zmienić pierwszy parametr srcdb na swoją bazę. Tworzymy kopię bazy, bo firefox blokuje do niej dostęp, jeśli jest włączony.
Na wyjściu skryptu dostajemy listę postaci:
link | tytuł
Można też ustawić wypisywanie tylko jednego z nich. Uzyskane dane można już dowolnie przeszukiwać, jeśli się tylko wie jak :). Do pobrania moz_places.sh lub obejrzenia:
#!/bin/bash srcdb=$HOME/.mozilla/firefox/profil.lucas/places.sqlite db=/dev/shm/places.sqlite # /dev/shm/ to RAM [ -f $db ] && rm -f $db cp $srcdb $db || exit 1 # ------------------------------------------------ usage(){ echo "${0##*/} { b, bookmarks | h, history} [ -u,--url | -t,--title ]" exit $1 } # ------------------------------------------------ get_history(){ sqlite3 $db <<! SELECT $select FROM moz_places p, moz_historyvisits h WHERE p.hidden=0 AND p.id = h.place_id ; ! } # ------------------------------------------------ get_bookmarks(){ sqlite3 $db <<! SELECT $select FROM moz_places p, moz_bookmarks b WHERE p.hidden=0 AND p.id = b.fk ; ! } # ------------------------------------------------ # wybieramy co wyświetlić: url, tytuł, wszystko select='p.url , p.title' [[ $2 ]] && { case "$2" in -u|--url) select='p.url' ;; -t|--title) select='p.title' ;; *) usage 1 ;; esac } # ------------------------------------------------ # wybieramy źródło: zakładki, historia [[ $1 ]] && { case "$1" in h|history) get_history ;; b|bookmarks) get_bookmarks ;; *) usage 1 ;; esac } || usage
Jak tego używać
Skrypty wymaga podania, z której tablicy w bazie korzystamy (historia, czy zakładki), a drugi parametr jest opcjonalny.
$ moz_places.sh moz_places.sh { b, bookmarks | h, history} [ -u,--url | -t,--title ] $ moz_places.sh b # or h http://www.web.com|Web title ... $ moz_places.sh b -u # or --url http://www.web.com ... $ moz_places.sh b -t # or --title Web title ...Szukaj w adresach ftp
$ moz_places.sh b | grep ^ftpszukaj tytułu zaczynającego się od słowa fedora
$ moz_places.sh b | awk -F'|' '$2 ~/^fedora/ {print $0}'... również z dużej litery
$ moz_places.sh b | awk -F'|' '$2 ~/^[fF]edora/ {print $0}'szukaj tytułu zaczynającego się od słowa [fF]edora, ale w adresie strony nie może być słowa fedora
$ moz_places.sh b \ | awk -F'|' '$2 ~/^[fF]edora/ {print $0}' \ | awk -F'|' '$1 !~/fedora/ {print $0}'Na koniec coś głupiego :) Która domena jest Twoim zdaniem najciekawsza?
$ moz_places.sh b \ | awk -F'/' '{print $3}' \ | sed 's:^www\.::g' \ | sort | uniq -cd | sort -n | tail -n 7
Gdyby ktoś chciał pogrzebać w bazie, a ma zerowe doświadczenie proponuję wygodny GUI sqliteman lub konsole:
pomoc sqlite3 $db ".help"
lista tablic sqlite3 $db ".tables"
schemat wybranej tablicy sqlite3 $db ".schema moz_places"
Brak komentarzy:
Prześlij komentarz