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
Wenn Sie durch die Manpage scrollen, sehen Sie den Abschnitt, der diese Version von beschreibt look
Verwenden einer linearen statt einer binären Suche.
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
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
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 getan haben.
look They the-jumblies.txt
look
antwortet mit der Auflistung dieser Zeilen:
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
Diesmal enthalten die Ergebnisse eine zusätzliche Zeile.
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.
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 look
mü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
Verwenden wir look
Klicken Sie in der sortierten.txt-Datei auf und verwenden Sie dann die -f
und -d
Optionen.
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
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
Dieses Mal erhalten wir ein Ergebnis. Wir haben diese Zeile zuvor nicht gefunden, weil die Anführungszeichen und das Ausrufezeichen die Suche verwirrten.
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
Die Ergebnisse stimmen mit dem Suchbegriff überein, der mit dem Apostroph abgeschlossen ist, den wir als Abschlusszeichen verwendet haben.
Look Without a File verwenden
Wenn Sie in der Befehlszeile keinen Dateinamen eingeben, verwendet look 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 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.