So verwenden Sie den look-Befehl unter Linux

Der Linux-Befehl look rast durch eine Datei und listet alle Zeilen auf, die mit einem bestimmten Wort oder einer bestimmten Phrase beginnen. Aber achten Sie auf! Es verhält sich auf verschiedenen Linux-Distributionen unterschiedlich. Dieses Tutorial zeigt Ihnen, wie Sie es verwenden.

Ubuntus Look-Befehl verhält sich anders

Für einen einfachen, aber nützlichen Befehl hat mich der Blick sicherlich auf den Punkt gebracht, als ich diesen Artikel recherchierte. Es gab zwei Probleme: Kompatibilität und Dokumentation.

Dieser Artikel wurde mit Ubuntu, Fedora und Manjaro überprüft. look wurde mit jeder dieser Distributionen gebündelt, was großartig war. Das Problem war, dass das Verhalten nicht bei allen dreien gleich war. Die Ubuntu-Version war ganz anders. Laut der Ubuntu-Manpages, das Verhalten sollte das gleiche sein.

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

Wenn wir einen Blick auf die lokale Ubuntu-Manpage werfen, sehen wir deutlich, dass ihr Aussehen eine lineare Suche verwendet. Es gibt eine Befehlszeilenoption, um eine binäre Suche zu erzwingen. Keine der Versionen in den anderen Distributionen bietet eine Option zur Auswahl zwischen Suchmethoden.

man look

Wenn wir durch die Manpage nach unten scrollen, sehen wir den Abschnitt, der diese Version des Looks mit einer linearen statt einer binären Suche beschreibt.

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

  So verwenden Sie den Befehl chgrp unter Linux

Lineare Suche versus binäre Suche

Das binäre Suchverfahren ist schneller und effizienter 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. Seien Sie sich nur bewusst, dass Sie auf Fedora, Manjaro und ich erwarte den Großteil der restlichen Linux-Welt eine sortierte Kopie Ihrer Datei erstellen und damit arbeiten müssen.

Wörter installieren

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

Auf Manjaro müssen Sie die Datei „words“ installieren. Verwenden Sie diesen Befehl:

sudo pacman -Syu words

Look verwenden

Für diesen Artikel arbeiten wir mit einer Textdatei der Edward Lear Gedicht „Die Durcheinander“.

Schauen wir uns den Inhalt mit diesem Befehl an:

less the-jumblies.txt

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.

Wenn wir nach Zeilen suchen, die mit dem Wort „Sie“ beginnen, erfahren wir, was die Jumblies gemacht haben.

look They the-jumblies.txt

look antwortet, indem es diese Zeilen auflistet:

Ausgabe von

Groß-/Kleinschreibung ignorieren

Um Unterschiede zwischen Groß- und Kleinschreibung zu ignorieren, verwenden Sie die Option -f (Groß-/Kleinschreibung ignorieren). Wir haben wieder „sie“ als Suchwort verwendet, aber diesmal in Kleinbuchstaben.

look -f they the-jumblies.txt

Diesmal enthalten die Ergebnisse eine zusätzliche Zeile.

  So verbessern Sie die Akkulaufzeit auf Linux-Laptops

Ausgabe von

Die Zeile, die mit „THEY“ beginnt, wurde im letzten Ergebnissatz übersehen, da sie nur in Großbuchstaben geschrieben ist und nicht mit unserem Suchbegriff „They“ übereinstimmt.

Das Ignorieren der Groß-/Kleinschreibung ermöglicht es look, sie in die Ergebnisse einzubeziehen.

Look mit einer sortierten Datei verwenden

Wenn Ihre Linux-Distribution eine Version von look hat, die dem traditionellen Verhalten einer binären Suche folgt, müssen Sie Ihre Datei entweder sortieren oder mit einer sortierten Kopie davon arbeiten.

Lassen Sie uns den Befehl wiederholen, um nach „Sie“ zu suchen, diesmal jedoch auf Manjaro.

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

Lassen Sie uns eine sortierte Kopie der Datei erstellen. Wenn Sie die Optionen -f (Groß-/Kleinschreibung ignorieren) oder -d (nur alphanumerische Zeichen und Leerzeichen) mit look verwenden, müssen Sie diese beim Sortieren der Datei verwenden.

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

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

Schauen wir uns die Datei sortiert.txt an und verwenden dann die Optionen -f und -d.

Jetzt erhalten wir die erwarteten Ergebnisse.

Berücksichtigen Sie nur Leerzeichen und alphanumerische Zeichen

Um den Blick zu erwecken, ignoriere alles, was kein ist alphanumerisches Zeichen oder ein Leerzeichen verwenden Sie die Option -d (alphanumerisch).

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

look -f oh the-jumblies.txt

Es werden keine Ergebnisse von Look zurückgegeben.

  So installieren und aktivieren Sie Bitcoin Core Wallet unter Linux

Versuchen wir es noch einmal und sagen Sie look, dass alles außer alphanumerischen Zeichen und Leerzeichen ignoriert werden soll. Das bedeutet, dass Zeichen und Symbole wie Satzzeichen ignoriert werden.

look -f -d oh the-jumblies.txt

Diesmal erhalten wir ein Ergebnis. Wir haben diese Zeile vorher nicht gefunden, weil die Anführungszeichen und das Ausrufezeichen die Suche verwirrt haben.

Ausgabe von

Angeben des Abschlusszeichens

Sie können look anweisen, ein bestimmtes Zeichen als Abschlusszeichen zu verwenden. Als Abschlusszeichen werden in der Regel Leerzeichen und Zeilenende verwendet.

Mit der Option -t (Zeichen beenden) können wir das Zeichen angeben, das wir verwenden möchten. In diesem Beispiel verwenden wir das Apostroph-Zeichen. Wir müssen es mit einem umgekehrten Schrägstrich zitieren, damit der Look weiß, dass wir keinen String öffnen.

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

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

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

Look ohne Datei verwenden

Wenn Sie in der Befehlszeile keinen Dateinamen angeben, verwenden Sie die wortdatei.

Der Befehl:

gibt diese Ergebnisse:

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

suchen Sie nicht weiter

Das ist alles, was es zu suchen gibt.

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.