/ / Verwendung des Befehls look unter Linux

So verwenden Sie den Befehl look unter Linux

Linux-Terminal, das auf einer Ubuntu-Desktop-Umgebung ausgeführt wird.

Das Linux look Befehl rast durch eine Datei und listet alleZeilen, die mit einem bestimmten Wort oder Satz beginnen. Aber achten Sie auf! Es verhält sich auf verschiedenen Linux-Distributionen unterschiedlich. Dieses Tutorial zeigt Ihnen, wie man es benutzt.

Der Look-Befehl von Ubuntu verhält sich anders

Für einen einfachen, aber nützlichen Befehl look gab mir auf jeden Fall die Ausrede, als ich diesen Artikel recherchierte. Es gab zwei Probleme: Kompatibilität und Dokumentation.

Dieser Artikel wurde mit Ubuntu, Fedora und Manjaro geprüft. look wurde mit jeder dieser Distributionen gebündelt,Das war großartig. Das Problem war, dass das Verhalten bei allen drei nicht gleich war. Die Ubuntu-Version war sehr unterschiedlich. Laut den Ubuntu-Manpages sollte das Verhalten dasselbe sein.

Ich habe es schließlich herausgefunden. look verwendet traditionell eine binäre Suche, während Ubuntu look verwendet eine lineare Suche. In den Online-Ubuntu-Manpages für Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) und Disco Dingo (19.04) heißt es, dass die Ubuntu-Version eine binäre Suche verwendet, was nicht der Fall ist.

Wenn wir uns das anschauen lokal Ubuntu-Manpage, wir sehen, es heißt eindeutig ihre look verwendet eine lineare Suche. Es gibt eine Befehlszeilenoption, um die Verwendung einer binären Suche zu erzwingen. Keine der Versionen in den anderen Distributionen hat die Option, zwischen Suchmethoden zu wählen.

man look

"man look" in einem Terminalfenster.

Wenn Sie durch die Manpage scrollen, sehen Sie den Abschnitt, der diese Version von beschreibt look Verwenden einer linearen statt einer binären Suche.

Ubuntu Look Manpage in einem Terminalfenster.

Die Moral der Geschichte ist, zuerst die lokalen Manpages zu überprüfen.

Lineare Suche versus binäre Suche

Die binäre Suchmethode ist schneller und mehreffizienter als eine lineare Suche. Das Arbeiten mit großen Dateien macht dies sehr deutlich. Der Nachteil der binären Suche ist, dass Ihre Datei sortiert werden muss. Wenn Sie Ihre Datei nicht sortieren möchten, sortieren Sie eine Kopie davon und verwenden Sie diese dann mit look.

Wir werden dies an anderer Stelle in diesem Artikel demonstrieren. Beachten Sie jedoch, dass Sie unter Fedora, Manjaro und dem Großteil der übrigen Linux-Welt eine sortierte Kopie Ihrer Datei erstellen und damit arbeiten müssen.

Wörter installieren

look kann mit jeder beliebigen Textdatei arbeiten oder mit der lokalen Wörterbuchdatei "words".

Auf Manjaro müssen Sie die "Wörter" -Datei installieren. Verwenden Sie diesen Befehl:

sudo pacman -Syu words

"sudo pacman -Syu words" in einem Terminalfenster.

Look verwenden

Für diesen Artikel werden wir mit einer Textdatei des Edward-Lear-Gedichts "The Jumblies" arbeiten.

Sehen wir uns den Inhalt mit diesem Befehl an:

less the-jumblies.txt

"less the-jumblies.txt" in einem Terminalfenster.

Hier ist der erste Teil des Gedichts. Beachten Sie, dass wir Ubuntu verwenden, sodass die Datei unsortiert bleibt. Für Fedora und Manjaro würden wir mit einer sortierten Kopie der Datei arbeiten, die wir später in diesem Artikel behandeln werden.

"The Jumblies" in weniger in einem Terminalfenster.

Wenn wir nach Zeilen suchen, die mit dem Wort "Sie" beginnen, erfahren wir, was die Jumblies getan haben.

look They the-jumblies.txt

"Schau sie dir-jumblies.txt" in einem Terminalfenster an.

look antwortet mit der Auflistung dieser Zeilen:

Ausgabe von "look They the-jumblies.txt" in einem Terminalfenster.

Groß- / Kleinschreibung ignorieren

Zu machen look Ignorieren Sie die Unterschiede zwischen Groß- und Kleinschreibung -f Option (Groß- / Kleinschreibung ignorieren). Wir haben wieder "sie" als Suchwort verwendet, diesmal jedoch in Kleinbuchstaben.

look -f they the-jumblies.txt

Schauen Sie in einem Terminalfenster nach -f they the-jumblies.txt.

Diesmal enthalten die Ergebnisse eine zusätzliche Zeile.

Ausgabe von "look -f they the-jumblies.txt" in einem Terminalfenster.

Die mit "THEY" beginnende Zeile wurde in der letzten Ergebnismenge verpasst, da sie in Großbuchstaben geschrieben ist und nicht zu unserem Suchbegriff "They" passt.

Das Ignorieren von Groß- und Kleinschreibung erlaubt look um es in die Ergebnisse aufzunehmen.

Look mit einer sortierten Datei verwenden

Wenn Ihre Linux-Distribution eine Version von look Wenn dies dem herkömmlichen Verhalten einer binären Suche entspricht, müssen Sie entweder Ihre Datei sortieren oder mit einer sortierten Kopie davon arbeiten.

Wiederholen wir den Befehl, um nach "They" zu suchen, diesmal jedoch auf Manjaro.

Schau sie dir-jumblies.txt in einem Terminalfenster an.

Wie Sie sehen, wurden keine Ergebnisse zurückgegeben. Aber wir wissen, dass das Gedicht Zeilen enthält, die mit dem Wort „Sie“ beginnen.

Erstellen wir eine sortierte Kopie der Datei. Wenn Sie das verwenden möchten -f (Groß- / Kleinschreibung ignorieren) oder -d (nur alphanumerische Zeichen und Leerzeichen) Optionen mit lookmüssen Sie sie beim Sortieren der Datei verwenden.

Das -o Mit der Option (Ausgabe) können Sie den Namen der Datei angeben, zu der die sortierten Zeilen hinzugefügt werden sollen. In diesem Beispiel ist es "sortiert.txt".

sort -f -d the-jumblies.txt -o sorted.txt

sort -f -d die-durcheinander.txt -o sortiert.txt in einem Terminalfenster.

Verwenden wir look Klicken Sie in der sortierten.txt-Datei auf und verwenden Sie dann die -f und -d Optionen.

sort -f -d die-durcheinander.txt -o sortiert.txt in einem Terminalfenster.

Jetzt erhalten wir die erwarteten Ergebnisse.

Berücksichtigen Sie nur Leerzeichen und alphanumerische Zeichen

Verwenden Sie zum Ignorieren von Elementen, die kein alphanumerisches Zeichen oder Leerzeichen sind, -d (alphanumerische) Option.

Mal sehen, ob es Wörter gibt, die mit "Oh" beginnen.

look -f oh the-jumblies.txt

Schau -f oh the-jumblies.txt in einem Terminalfenster.

Es werden keine Ergebnisse von zurückgegeben look.

Versuchen wir es noch einmal und sagen wir look, dass alles andere als alphanumerische Zeichen und Leerzeichen ignoriert werden sollen. Dies bedeutet, dass Zeichen und Symbole, z. B. Satzzeichen, ignoriert werden.

look -f -d oh the-jumblies.txt

Schauen Sie in einem Terminalfenster nach -f -d oh the-jumblies.txt.

Dieses Mal erhalten wir ein Ergebnis. Wir haben diese Zeile zuvor nicht gefunden, weil die Anführungszeichen und das Ausrufezeichen die Suche verwirrten.

Ausgabe von "look -f -d oh the-jumblies.txt" in einem Terminalfenster.

Festlegen des Abschlusszeichens

Du kannst sagen look um ein bestimmtes Zeichen als Abschlusszeichen zu verwenden. Normalerweise werden Leerzeichen und Zeilenende als Abschlusszeichen verwendet.

Das -t Mit der Option (Zeichen beenden) können wir das Zeichen angeben, das wir verwenden möchten. In diesem Beispiel wird das Apostrophzeichen verwendet. Wir müssen es mit einem umgekehrten Schrägstrich zitieren look weiß, dass wir keine Zeichenfolge öffnen.

Wir zitieren auch den Suchbegriff, da er ein Leerzeichen enthält. Wir suchen nach zwei Wörtern.

look -f -t ' "they call" the-jumblies.txt

schau -f -t '"sie rufen" die-jumblies.txt in einem Terminalfenster auf.

Die Ergebnisse stimmen mit dem Suchbegriff überein, der mit dem Apostroph abgeschlossen ist, den wir als Abschlusszeichen verwendet haben.

Die Ausgabe von "look -f -t '" ruft "the-jumblies.txt" in einem Terminalfenster auf.

Look Without a File verwenden

Wenn Sie in der Befehlszeile keinen Dateinamen eingeben, verwendet look die Wortdatei.

Der Befehl:

"look circle" in einem Terminalfenster.

gibt diese Ergebnisse:

"look circle" führt zu einem Terminalfenster.

Dies sind alle Wörter in der Datei, die mit dem Wort "Kreis" beginnen.

suchen Sie nicht weiter

Das ist alles was es zu tun gibt look.

Es ist ziemlich einfach, wenn Sie wissen, dass es bei verschiedenen Linux-Distributionen unterschiedliche Verhaltensweisen gibt, und Sie haben herausgefunden, ob Ihre Version eine binäre oder lineare Suche verwendet.