Lösung Teil 1: Liste runterladen und aufräumen

Zuerst holen wir uns eine Liste aller amerikanischen "Physicians" (in denen die Physiologen enthalten sind) von Wikipedia. Das geht am einfachsten mit der Konsole (Ubuntu 08.10). Nach einigen Versuchen sieht der Befehl dazu am Ende so aus:

 wget -qO- http://en.wikipedia.org/wiki/List_of_physicians | grep "<li>" | awk -F'title=' '{print $2}' | awk -F'"' '{print $2}' > physician_list.txt 

Was der Befehl bedeutet:

Zuallererst wird mit

 wget -qO- http://en.wikipedia.org/wiki/List_of_physicians 

die Liste von Wikipedia heruntergeladen. Die Option -q lässt wget ohne störende Statusmeldungen laufen, die Option -O- (großes "o" und dann ein Minus) lässt wget den Output auf die Konsole umleiten, anstatt ihn in einer Datei zu speichern
Die Schreibweise -qO- ist Kurzform von -q -O- , was erlaubt ist, weil hier alle Optionen nur aus aus einem Buchstaben bestehen.

Jetzt wird das komplette HTML-Dokument über die berühmten Physiologen in die Konsole ausgegeben. Wenn man sich das Dokument näher anschaut, kann man erkennen, dass die Namen immer in einer Zeile mit <li>-Tags stehen, und zwar immer nach einem "title=". Das benutzen wir, um möglichst nur die Namen heraus zu fischen:

Den Pipe-Operator | benutzt man dazu, um den Output des vorgerigen Befehls an den nächsten Befehlt weiter zu geben. Das funktioiniert aber nur für den Output, der auf der Konsole ausgegeben wird. Daher muss man bei wget die Optionen -qO- angeben!

  grep "<li>" 

durchsucht die mit dem |-Operator übergebene Liste nach der Zeichenkette <li> und gibt nur die Zeilen weiter, die diese Zeichenkette enthalten.

Jetzt kommt ein kleines Programm:

 awk -F'title=' '{print $2}' 

awk ist eine eigene Skriptsprache, die zum durchstöbern von Tabellen benutzt werden kann. Man kann awk über die Konsole benutzen, indem man awk -Optionen '{programm}' benutzt. Das Programm muss in geschweiften Klammern stehen, um als solches erkannt zu werden, und in Hochkommatas, damit die Konsole nicht versucht, innerhalb des Programmes $2 etc. aufzulösen.
Die Optione -F'title=' sagt, dass in der mit dem |-Operator übergebenen "Tabelle" die Zeichenkette "title=" als Trennelement zwischen Spalten angesehen werden soll. Das "Programm" print $2 führt dazu, dass die zweite Spalte auf der Konsole ausgegeben wird.

Alle Physicians, die schon einen eigenen Wikipedia-Eintrag haben (hoffen wir mal, dass unserer darunter fällt), stehen in Zeilen, die mit " beginnen. Hinter dem Namen steht wieder ein ". Perfekt für einen weiteren awk-Befehl!

 awk -F'"' '{print $2}' 

Jetzt bleiben noch 352 Zeilen übrig, die mit

 > physician_list.txt 

in einer Datei gespeichert werden. Da steht zwar noch Unsinn drin, aber den fischen wir nachher raus.