tisdag 13 januari 2009

Använd Google Defind word i terminalen

Först mååste terminal webbrowsern lynx installeras sudo apt-get install lynx sen lägg in koden nedan nederst i filen: ~/.bashrc och starta om eller öppna en ny terminalen.

# Define a groovy word - USAGE: define lamer
define ()
{
lynx -dump "http://www.google.com/search?hl=en&q=define%3A+${1}&btnG=Google+Search" | grep -A 500 "Definitions of" | grep -v [[] | grep -B 500 "Search" | grep -v "Search"| grep -B 500 "Referenser" | grep -v "Referenser" | less
}


Hela lynx -dump och fram till | less ska vara på samma rad.
grep -A 500 "Definitions of" söker rätt på orden "Deffinitions of" och hämtar upp den raden plus upptill 500 rader till.

grep -v [[] Söker bland dessa 500 rader efter [ som finns för varje deffinition av ordet som en länk som inte är intressant tycker jag... Så de raderna tas bort.

grep -B 500 "Search" söker reda på ordet "Search" och behåller de 500 raderna som är före den raden. Efter Search står det bara en massa onödiga länkar som nu tas bort.

grep -v "Search" Tar bort själva raden som inehåller det ordet "Search".

grep -B 500 "Referenser" söker reda på ordet "Referenser" och behåller de 500 raderna som är före den raden. Efter Referenser står det bara en massa onödiga länkar som nu tas bort.

grep -v "Referenser" Tar bort själva raden som inehåller det ordet "Referenser".

less skriover ut texten i terminalen och den avslutas med att man trycker på q

Alternativt kan man göra så här:

# Define a groovy word - USAGE: define lamer
define ()
{
lynx -dump "http://google.com/search?q=define%3A+${1}" | awk '
/Definitions of/,/^$/
# tar allt fram till en tom rad, nytt stycke.
#/Referenser/,0
# tar allt från det angivna och resten av sidan.
' | grep -v [[] | less

}

/,/^$/ tar allt fram tillnytt stycke (tom rad)
/,0 tar restan av sidan.

Jag har bort kommenterat Referenser för jag vill inte visa den.


Inga kommentarer: