2010-06-19 Searching Google From The Command Line
(shortest path for) Searching Google From the Command Line
Looking at the recent announce from Google about their "Google Command Line Tool", this is nice but missing a clear functionality : searching Google… I found various software to do it but it's always relying on external software or libraries and not really the core Unix tools. Now can we do it but just using standard Unix tools? (beside "curl" but this can be even replaced by a telnet doing an HTTP request if required)
To search google from an API, you can use the AJAX interface to do the search (as the old Google search API is not defunct). The documentation of the interface is available but the output is JSON. JSON is nice for browser but again funky to parse on command line without using external tools like jsawk. But it's still a text output, this can be parsed by the wonderful awk (made in 1977, a good year)… At the end, this is just a file with comma separated value for each "key/value". After, you can through away the key and you display the value.
curl -s "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=0&rsz=large&q=foo" | sed -e 's/[{}]/''/g' | awk '{n=split($0,s,","); for (i=1; i<=n; i++) print s[i]}' | grep -E "("url"|"titleNoFormatting")" | sed -e s/\"//g | cut -d: -f2-
and the result output :
http://en.wikipedia.org/wiki/Foobar Foobar - Wikipedia http://en.wikipedia.org/wiki/Foo_Camp Foo Camp - Wikipedia http://www.foofighters.com/ Foo Fighters Music ...
Now you can put the search as a bash function or as an alias (you can replace foo by $1). Do we need more? I don't think beside a Leica M9…
Tags: google command-line unix internet search
Syndicated 2010-06-19 10:14:31 (Updated 2010-06-19 11:16:18) from AdulauWikiDiary: RecentChanges

