I artikkelen om Unix-filosofi hadde jeg egentlig tenkt å inkuldere et eksempel på hva man kan gjøre ved å lenke sammen programmer på kommandolinjen, men jeg kom ikke på et godt eksempel som virket som noe en vanlig person kunne finne på å gjøre. I dag fant jeg imidlertid et, så her følger en liten demonstrasjon.
Sett at en eller annen arrogant nisse har postet en post i et forum, der han dårlig tilslørt skryter av hvor mange ulike land han har lest bøker fra. Du vil gjerne jekke ham ned noen hakk ved å påpeke at det fortsatt finnes ganske mange land han ikke har lest bøker fra, og du ønsker naturligvis å inkludere en liste over disse landene. Så hvordan kan du få til det, uten å måtte manuelt sammenligne listen hans med listen over alle land som finnes? Trivielt, min kjære Watson.
Først må du kopiere listen hans, og lagre den i en tekstfil. Det regner jeg med du greier selv. For enkelhets skyld lagrer vi filen som larry.txt.
Dernest er det bare å åpne terminalen, og skrive
comm -13 <(cat larry.txt | sort) <(curl http://www.listofcountriesoftheworld.com/ | sed -n 's/.*">\([^<>]*\)<\/a><\/td>$/\1/p' | sort)
så har du listen over alle land han ikke har lest bøker fra. Temmelig smertefritt, om jeg får si det selv.
-Tor Nordam
Comments