Um sich die Arbeit dann ein wenig leichter zu machen, wandeln Sie die Liste mit Tr (für “translate” oder “transliterate”) noch komplett in Großbuchstaben um. Das Ergebnis landet in der Datei wordle-nurgross.txt (Zeile 3). Am Ende erhalten Sie die über 1,9 Millionen Wörter umfassende Wörterbuchdatei wordle-nurgross.txt – das Kommando wc -l (kurz für “word count”) zählt die Zeilen in der Datei (Zeile 4).
Listing 2
Wörterbuch aufbereiten
$ wget https://gist.github.com/MarvinJWendt/2f4f4154b8ae218600eb091a5706b5f4/raw/36b70dd6be330aa61cd4d4cdfda6234dcb0b8784/wordlist-german.txt $ sed -e's/Ä/Ae/g' -e's/ä/ae/g' -e's/Ö/Oe/g' -e's/ö/oe/g' -e's/Ü/Ue/g' -e's/ü/ue/g' -e's/ß/ss/g' wordlist-german.txt > wordle-umlaute.txt $ tr '[:lower:]' '[:upper:]' < wordle-umlaute.txt > wordle-nurgross.txt $ wc -l wordle-nurgross.txt 1908814 wordle-nurgross.txt $ grep '^[A-Z][A-Z][A-Z][A-Z][A-Z]$' wordle-nurgross.txt > wordle-komplett.txt $ wc -l wordle-komplett.txt 6157 wordle-komplett.txt
Für Wordle benötigen Sie aus dieser vollständigen Liste allerdings nur Wörter mit genau fünf Buchstaben. Das Grep-Kommando aus Zeile 6 extrahiert dazu die für das Lösen von Wordles benötigten Zeichenkombinationen, also die Fünf-Zeichen-Wörter, in die Datei wordle-komplett.txt. Der reguläre Ausdruck [A-Z] steht dabei für einen beliebigen Großbuchstaben von A bis Z. Am Schluss bleiben noch ein wenig mehr als 6000 Wörter übrig – wer hätte gedacht, dass es so viele Wörter dieser Länge gibt?
Sed und Grep für Wordle
Diese Vorarbeit müssen Sie nur einmal erledigen. Bewahren Sie die Datei wordle-komplett.txt daher für später auf. Um unser Wordle aus Abbildung 3 zu lösen, starten wir zuerst mit einem komplett zufälligen Wort aus unserem Wordle-Wörterbuch – zu Anfang sind die in der Abbildung gezeigten Lösungsschritte noch leer. Per Shuf suchen Sie dann fünf zufällige Wörter aus der Datei heraus (Listing 3). Sind Sie mit der Auswahl nicht glücklich, wiederholen Sie das Kommando einfach.
Listing 3
Beispiel 1, Versuch 1
$ shuf -n 5 wordle-komplett.txt
LOGGT
DAMIT
BENIN
FREDS
ENGTE
In unserem Beispiel waren wir mit dem Wort DAMIT zufrieden. Ins Wordle eingetragen, blieben alle Buchstabenfelder grau – auf den ersten Blick also kein guter Tipp. Doch nun wissen wir, dass das gesuchte Lösungswort keinen einzigen der Buchstaben aus dem Wort enthält. Dieses Wissen bringt uns bei der Suche nach dem Lösungswort ganz wesentlich weiter.
Das erste Kommando aus Listing 4 filtert daher alle Wörter aus unserer Wortliste heraus, die die Zeichen D, A, M, I und T enthalten. Der Schalter -v (oder ---invert-match) vor dem Grep-Kommando bewirkt dabei, dass Grep die folgende Regex-Regel invertiert. Das Ergebnis speichert der Befehl in die Datei wordle1, die “nur” noch 1085 Wörter enthält. Aus dieser Liste lassen Sie sich wieder fünf beliebige Wörter ausgeben.
Listing 4
Beispiel 1, Versuch 2
$ grep -v '[DAMIT]' wordle-komplett.txt > wordle1 $ wc -l wordle1 1085 wordle1 $ shuf -n 5 wordle1 KOKON RUSHS SONNE PENES WESPE
Aus der gebotenen Auswahl gefällt uns WESPE – einen anderen Grund für die Wahl gibt es nicht. Vielleicht bevorzugt Wordle ja Hauptwörter. In Wordle übertragen, leuchtet nun das E an zweiter Stelle grün auf, das S an dritter Stelle gelb. Wir wissen nun, dass im gesuchten Lösungswort an zweiter Stelle ein E steht und dass es ein S enthält, nicht aber an dritter Position. Das W und P der WESPE erscheinen in Grau, die Buchstaben kommen also im Lösungswort nicht vor.
Mit diesen Informationen dünnen wir nun die Wortliste weiter aus. Das Grep-Kommando aus Zeile 1 von Listing 5 fasst alle Bedingungen in einem einzigen Aufruf zusammen. Der Zirkumflex (“^”, einzugeben über [^]+[Leer]) steht ähnlich wie der Schalter -v dafür, die einzelne Anweisung zu invertieren. Der vollständige reguläre Ausdruck [^WPE][E][^WPES][^WPE][^WPE] sucht also nach einer Zeichenfolge mit fünf Buchstaben. Der erste darf nicht W, P oder E sein, der zweite muss ein E sein, der dritte darf nicht W, P, E oder S sein, und so weiter.
Listing 5
Beispiel 1, Versuch 3
$ grep '[^WPE][E][^WPES][^WPE][^WPE]' wordle1 | grep S > wordle2 $ wc -l wordle2 40 wordle2 $ shuf -n 5 wordle2 VENUS BELLS FELLS NEONS VENNS
Per Pipe (“|”) lassen wir gleich noch ein zweites grep S auf die Ausgabe des ersten Grep-Kommandos los: Unser Suchwort muss ja noch irgendwo ein S enthalten. Das Ergebnis speichern wir in der Datei wordle2 ab, die jetzt nur noch 40 potenzielle Lösungen enthält. Auch daraus lassen wir uns nun wieder fünf zufällige Wörter ausgeben (Zeile 4). VENUS sieht gut aus, vielleicht bringt uns der Planet ja Glück – und siehe da, das Rätsel ist in drei Schritten gelöst, wenn auch mit ein wenig Glück am Ende.
TIPP
Die Wordle-Webseiten lassen Sie in der Regel immer nur einmal am Tag rätseln. Die Anbieter realisieren diese Funktion bislang nicht über ein Account-System, sondern setzen im Browser einfach ein Cookie, das den Nutzer identifiziert. Ist Ihnen Ihre Statistik egal, dann löschen Sie gegebenenfalls einfach das entsprechende Cookie, um das gesuchte Wort in einem neuen Versuch aufdecken zu können. Die von der aktuellen Webseite gespeicherten Cookies verwalten Sie zum Beispiel unter Chrome über einen Klick auf das Schloss-Icon links neben der Adresszeile und dem Menüpunkt Cookies aus dem sich öffnenden Menü. Danach wählen Sie die Cookies der Seite aus und tippen auf Entfernen. Laden Sie anschließend die Seite mit [F5] frisch herunter, dann startet auch das Rätsel neu. Einen neuen Suchbegriff gibt es aber dennoch weiterhin nur einmal am Tag.
Zweites Beispiel
Mit dieser Logik gehen wir an ein zweites Beispiel (Abbildung 4). Wir starten erneut mit einem beliebigen Wort, das wir wieder aus dem kompletten Wordle-Wörterbuch extrahieren Listing 6. Diesmal gefiel uns die LOCKE. In Wordle übertragen, meldet das Spiel in Gelb markiert, dass die Buchstaben O, C und K im gesuchten Wort vorkommen, allerdings nicht an der richtigen Stelle. Das L an erster und das E an der letzten Stelle fehlen hingegen komplett.





