[linux] Re: cli sqlite lezer?

Johan van Dijk johanvandijk op gmail.com
Vr Sep 19 18:13:33 CEST 2014


Het allersimpelste in Bash is iets als dit:

#!/bin/bash
bezoekaantal=$(sqlite3 places.sqlite 'SELECT sum(visit_count) FROM
moz_places WHERE url LIKE "%wikipedia.org%"; ')

echo $bezoekaantal # of doe er iets anders mee...


De LIKE zou je aan kunnen passen naar LIKE "https://%wikipedia.org/%"
maar dat zal niet 100% nauwkeurig zijn.

Een andere optie is deze syntax:
sqlite3 places.sqlite 'SELECT url,visit_count FROM moz_places WHERE
url LIKE "https://%wikipedia.org/%";'

Hierna zou je met grep verder kunnen filteren, met cut knippen zodat
je alleen de aantallen overhoudt en deze optellen in bash. Als ik het
goed begrepen heb is er geen echte regex-mogelijkheid in sqlite dus
moet het maar via grep.




2014-09-19 17:52 GMT+02:00 Eric de Hont <eric op hobiho.nl>:
> Op 19-09-14 om 15:32 schreef hans paijmans:
>> On 19-09-14 13:03, Johan van Dijk wrote:
>>> SELECT sum(visit_count) FROM moz_places WHERE url LIKE "%wikipedia.org%";
>> Ja, maar nu via een shellscript...
>>
> Nooit geweten dat dat zo werkte.
>
> De query moet nog wel wat verbeterd worden, want als je via een
> zoekmachine naar een wikipedia-pagina bent gegaan zit wikipedia.org ook
> de resultaat-url in het zoekresultaat:
>
> $ sqlite3 places.sqlite 'SELECT * FROM moz_places WHERE url LIKE "%wikipedia.org%";'|grep -i sqlite
>
> 181632|http://www.google.nl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fnl.wikipedia.org%2Fwiki%2FSQLite&ei=tEwcVPH6MonXOZfSgRA&usg=AFQjCNGfKrjsDxqfVdwnigV13s-KH9zOaw&sig2=hCaikcsobmsXYzEHcWl71w&bvm=bv.75775273,d.ZWU&cad=rjt||ln.elgoog.www.|1|0|0|49|100|1411140793548202|Ew4CF4FU-AGB
>
> 181633|http://nl.wikipedia.org/wiki/SQLite|SQLite - Wikipedia|gro.aidepikiw.ln.|1|0|0|4171|100|1411140794088652|6vHNrQqlHqxj
>
> De URL van wikipedia kan nogal varieren: nl.wikipedia.org,
> en.wikipedia.org enz. Ik weet niet genoeg van SQL om dat allemaal
> correct te filteren.
> Voorlopig hou ik het er op dat het voldoende is om een / toe te voegen:
> "%wikipedia.org/%".
>
>
> Gescript met bash:
>
> #!/bin/bash
>
> ########################################
> # Tel aantal bezoekjes aan wikipedia
> ########################################
>
> # Pas dit pad aan voor jouw situatie
> database=$HOME/.mozilla/firefox/lfr7m2wv.default/places.sqlite
>
> # / toegevoegd aan zoekargument
> query='SELECT sum(visit_count) FROM moz_places WHERE url LIKE
> "%wikipedia.org/%";'
>
> count=$(sqlite3 $database "$query")
>
> if [ "$?" -ne 0 ]
>      then
>      echo "sqlite gaf een fout."
> else
>      echo "Wikipedia is $count maal bezocht."
> fi
>
> Nou moet je natuurlijk niet plotseling overstappen op Chromium! Of een
> smartphone...
>
> Groeten,
> Eric de Hont
>




More information about the Linux mailing list