Wie Prüfen Sie die Rechtschreibung der Alten Schule Unix-Weg

0
288

Bevor Sie word-Prozessoren hatte einen Zauber-check-Funktion, die Sie zu laufen hatten Ihre eigene Rechtschreibprüfung, die gegen ein Dokument. Und in den ersten Unix-Tagen, – Systeme nicht über eine dedizierte “spell check” – Programm, sondern benötigt eine Reihe von Befehlen, es selbst zu tun. Lassen Sie uns nehmen einen Blick an, wie die Rechtschreibung der “alten Schule Unix” Weg.

Überprüfung Der Rechtschreibung Auf Der Kommandozeile

In diesen Tagen, wir denken nicht über die Rechtschreibprüfung in unserer Textverarbeitung. Sie können auch nicht “führen” einer Rechtschreibprüfung nicht mehr. Es ist einfacher zu beobachten, die rote Wellenlinie angezeigt unter falsch geschriebenen Wörtern; wenn es eine rote Linie unter ihm, fixieren Sie die Rechtschreibung.

In den frühen Unix-Tagen, die das system zur Verfügung gestellt, ein Wörterbuch-Datei (normalerweise /usr/share/dict/words auf den meisten Linux-Systemen), die eine sortierte Liste der Wörter aus dem Wörterbuch, wobei jedes Wort in einer Zeile allein. Zum prüfen der Rechtschreibung eines Dokuments, müssen Sie vergleichen Sie alle der Wörter in Ihrem Dokument gegen die Wörterbuch-Datei. Und um das zu tun, müssen Sie konvertieren Sie Ihre Dokument in ein format, das aussieht wie die Wörterbuch-Datei: eine sortierte Liste von Wörtern, wobei jedes Wort auf einer eigenen Zeile.

Die Wörterbuch-Datei ist in Kleinbuchstaben geschrieben, so müssen Sie zuerst konvertieren Sie Ihr Dokument in Kleinbuchstaben verwenden. Sie tun dies mit dem cat Befehl, um die Datei anzuzeigen, und der tr-Befehl übersetzt Zeichen von einer Menge in eine andere. In diesem Fall, können Sie bitten, tr zu konvertieren alle Großbuchstaben A-Z, die Kleinbuchstaben a-z:

Katze Dokument | tr A-Z a-Z

Während das Lexikon in Wort, Satzzeichen wie Bindestriche und Apostrophe, die Liste der Wörter, die nicht enthalten Satz Satzzeichen wie Perioden-und Fragezeichen. So der nächste Schritt ist die Verwendung von tr, die diese Zeit zu löschen (-d), die Charaktere, die wir nicht wollen:

Katze Dokument | tr A-Z a-z | tr -d ‘,.:;()?!’

Die Wörterbuch-Datei hat jedes Wort in einer Zeile allein, so dass Sie brauchen, um zu brechen Sie Ihr Dokument so, jedes Wort wird auf seine eigene Linie. Der tr-Befehl kann ersetzt Leerzeichen mit einem “neue Zeile” – Zeichen, um dies für uns tun:

Katze Dokument | tr A-Z a-z | tr -d ‘,.:;()?!’ | tr ” ‘n’

Sortierung der Ausgabe ist leicht getan mit dem Unix-Befehl “Sortieren”. Fügen Sie die uniq Befehl zum Aufräumen die Ausgabe, entfernen Sie alle doppelten Wörter. Zum Beispiel, werden Sie wahrscheinlich verwenden Sie das Wort “der” mehrmals in einem Dokument. Mit Sortieren dann uniq Streifen aus der wiederholten Instanzen von “das”, so dass Sie nur haben “die” in Ihrer Ausgabe.

Katze Dokument | tr A-Z a-z | tr -d ‘,.:;()?!’ | tr ” ‘n’ | sort | uniq

Nun sind Sie bereit, vergleichen Sie die Liste der Wörter aus Ihrem Dokument mit der Wörterbuch-Datei! Die standard-Unix-Befehl comm vergleicht zwei Dateien Zeile für Zeile, und identifiziert Linien, die eindeutig für die erste Datei, die nur für die zweite Datei, oder Linien, sind beiden gemeinsam. Finden Sie die Liste der falsch geschriebenen Wörter aus Ihrem Dokument, die Sie möchten, dass die Liste der einzigartigen Wörter – Wörter, die gefunden werden, in Ihrem Dokument, aber nicht in der Wörterbuch-Datei. Verwenden Sie die -2 option nicht drucken die Worte, die eindeutig auf die zweite Datei, und die -3 option auf keine Anzeige der Wörter, die in beiden Dateien. Was bleibt sind die Worte, die einzigartig in Ihrem Dokument, das nicht im Wörterbuch; diese sind falsch geschriebene Wörter.

Katze Dokument | tr A-Z a-z | tr -d ‘,.:;()?!’ | tr ” ‘n’ | sort | uniq | comm -2 -3 – /usr/share/dict/words

Die einzelnen Bindestrich erzählt comm zu Lesen vom “standard input”, die der Ausgabe der vorherigen Befehle auf der Kommandozeile.

Und das ist, wie die Rechtschreibung der “alten Schule Unix” Weg! Lassen Sie mich demonstrieren Sie mit einem Beispiel-Dokument. Ich habe absichtlich falsch geschrieben, ein paar Worte hier:

$cat-Dokument
Frühe Unix nicht Wort procesors, wie wir denke, Sie heute. Stattdessen
Sie schrieb eine nur-text-Dokument, das könnte embedded-spezielle Befehle
unterstreichen von text oder erstellen Sie eine Liste von bulet Punkte. Aber wie haben Sie überprüft, die
Rechtschreibung in Ihrem Dokument?

Durch ausführen der Liste der Befehle, Sie finden diese Liste der falsch geschriebenen Wörter:

$cat Dokument | tr A-Z a-z | tr -d ‘,.:;()?!’ | tr ” ‘n’ | sort | uniq | comm -2 -3 – Worte
bulet
procesors
denke,

Der Schlüssel zum überprüfen der Rechtschreibung auf diese Weise ist die Unix-comm-Befehl zum vergleichen zwei sortierte Listen von Wörtern. Die beiden Listen müssen sortiert werden, auf die gleiche Weise. Das Linux-system ist /usr/share/dict/words-Datei kann einige Wörter in Großbuchstaben, wie üblich, Namen oder Titeln oder Standorten. Zum Beispiel, das Wörterbuch-Datei auf meinem Fedora-system 32 enthält sowohl “Minnesota” (richtige groß-und Kleinschreibung für das US-state-name), “minnesota” (alles Kleinbuchstaben), die auf benachbarten Linien. Aber der Unix-Befehl “Sortieren” sortiert Großbuchstaben getrennt von Kleinbuchstaben. Dies wird verwirren die comm-Befehl, der wird sich beschweren, dass die Eingabedatei nicht richtig sortiert. Um besser mit der “alten Schule Unix” – Methode, um die Rechtschreibung prüfen, müssen Sie zunächst Sortieren Sie Ihre system-Wörterbuch-Datei und speichern es in einer separaten Datei. Sie können tun, so wie diese:

sort /usr/share/dict/words > Worte