GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren und verwenden Sie den Ack-Befehl unter Linux mit Beispielen

Mit dem Linux-Betriebssystem können Sie sowohl Verzeichnisstrukturen als auch Verzeichnisdateien nach Übereinstimmungen mit bestimmten Textzeichenfolgen durchsuchen. Ein gängiges Tool, das uns bei der Durchführung dieser Verzeichnissuchen hilft, ist ein grep (globaler regulärer Ausdruck print ) Befehl. Die Verwendung von regulären Ausdrücken durch grep macht es möglich, eine Suche nach Zeichenfolgenmustern in Richtung einer übereinstimmenden Textausgabe auf der Befehlszeile zu initiieren.

[Das könnte Ihnen auch gefallen:Ripgrep – Das schnellste Kommandozeilen-Suchtool für Linux ]

Die Nachteile von grep sind in seiner Geschwindigkeit und nicht flexiblen Eigenschaften. Hier ist das ack Werkzeug übernimmt. Es bietet schnelle Suchvorgänge, die sich auf Quellcode-Verzeichnissuchen erstrecken, und gibt einem Linux-Benutzer die Flexibilität, bestimmte Ausgaben aus den Suchergebnissen auszuschließen.

So installieren Sie Ack unter Linux

Jede von Perl unterstützte Plattform kann den ack aufnehmen Suchwerkzeug. Wir installieren es, indem wir auf sein Hauptpaket ack-grep verweisen .

$ sudo apt-get install ack-grep      [On Debian, Ubuntu and Mint]
$ sudo yum install ack-grep         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/ack-grep  [On Gentoo Linux]
$ sudo pacman -S ack-grep           [On Arch Linux]
$ sudo zypper install ack-grep      [On OpenSUSE]    

Verzeichnissuche bestätigen

Seit ack als quellcodeorientiert bezeichnet wird, können wir seine Fähigkeit zur Suche nach Zeichenfolgenmustern anhand eines Quellcodeverzeichnisses demonstrieren. Github ist eine renommierte Ressource für Tausende von Quellcode-Verzeichnissen. Ein ideales Projekt-Quellcode-Verzeichnis für diesen Artikelleitfaden ist das neovim-Projekt.

Git unter Linux installieren

$ sudo apt-get install git     [On Debian, Ubuntu and Mint]
$ sudo yum install git         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/git  [On Gentoo Linux]
$ sudo pacman -S git           [On Arch Linux]
$ sudo zypper install git      [On OpenSUSE]    

Neovim-Projekt klonen

Die vielen verschiedenen Dateitypen in diesem neovim-Texteditor-Projekt sind für unseren Artikelleitfaden notwendig.

$ git clone https://github.com/neovim/neovim.git

Navigieren Sie zu neovim geklontes Verzeichnis, um mit unserem Tutorial zu beginnen.

$ cd neovim && ls

Das aufgelistete Verzeichnis der obersten Ebene macht Markdown-Dateien (.md) verfügbar , Textdateien (.txt) und eine YAML-Datei.

Einfache Ack-Suchbefehle implementieren

Da die meisten Suchanfragen aus dem Linux-Terminalfenster wegen unendlicher Ausgaben zu unkontrollierbarem Scrollen führen, können wir diese Suchergebnisse auf „weniger umleiten ” für Ergebnisinstanzen, die die normale Terminalfenstergröße überschreiten.

$ echo '--pager=less -RFX' >> ~/.ackrc

Die obige Bestätigung Konfigurationsbefehl handhabt überlaufende Ergebnisausgaben intelligent.

Ermitteln der Gesamtzahl der Dateien in einem Verzeichnis

Dieses erste Befehlsbeispiel hilft uns, die logische Effizienz von ack zu erkennen Suche von grep Suche. Durch grep , können wir die Gesamtzahl der Dateien auf dem geklonten neovim ermitteln Projekt durch den folgenden Befehl:

$ find . | wc -l

Bestätigen zählt nur Dateien, die seiner Meinung nach logisch relevant sind, daher wird seine Ausgabe anders sein.

$ ack -f | wc -l

Die oben genannten 7 % (2984-2772 ) ignorierte Dateien werden von allen ack ignoriert Suchanfragen.

Suchen einer bestimmten Zeichenfolgenmustervariation aus einem Verzeichnis

Versuchen wir, die momentanen Vorkommen des Zeichenkettenmusters „restrict“ abzufragen “.

$ ack restrict

Die obigen Ausgaben verweisen auf die genauen Zeilennummern in den Dateien, die die Zeichenfolgenmusterübereinstimmung enthalten. Das ausgegebene Rastermuster ergibt „Einschränken “ sind auch Bestandteile von Wörtern wie eingeschränkt und Einschränkung .

Ein bestimmtes Zeichenfolgenmusterwort aus einem Verzeichnis finden

Wenn Sie nicht daran interessiert sind, dass ein Suchergebnis als Variation, sondern als vollständiges Wort erscheint, müssen Sie Ihre Suchzeichenfolgenmuster anders implementieren.

$ ack -w restrict 

Wie Sie sehen können, sucht das Suchzeichenfolgenmuster nach „Einschränken ” als vollständiges Wort und nicht als Teil eines anderen Wortvorkommens.

Suchen eines bestimmten Zeichenfolgenmusters aus einem bestimmten Dateityp

Vielleicht möchten Sie, dass Ihre Suche nach Zeichenfolgenmustern auf eine bestimmte Datei wie Python abzielt (--python) Datei, c (--c) Datei, vim (--vim) Datei oder einen anderen Dateityp, sollte Ihre Zeichenfolgenmusterabfrage auf den gesuchten Dateityp verweisen.

$ ack -w --python restrict

Die obige Befehlsausgabe weist auf das Auftreten des Wortes „restrict ” auf der Linie 110 in der Python-Datei „src/clint.py “.

Ermitteln des Gesamtvorkommens einer Zeichenfolgenmustersuche in jeder Datei

Da die geklonten neovim Verzeichnis, das wir verwenden, unterschiedliche Dateitypen hat, zählt dieser Befehl das Auftreten einer bestimmten Zeichenfolgenmustersuche (restrict ) in jedem dieser Dateitypen.

$ ack -c restrict  

Steuern der Ausgabe einer Zeichenfolgenmustersuche

Die obige Befehlsausgabe enthält Dateien mit Null-String-Musterübereinstimmungen für die angegebene String-Eingabe. Um sie zu vermeiden, gibt der folgende Befehl die Gesamtzahl der Dateizeilen aus, die mit einer angegebenen Zeichenfolgenmustereingabe übereinstimmen.

$ ack -ch restrict

Wir können die obige Ausgabe kleiner und genauer machen, indem wir die Suchausgabe anweisen, nur vollständige Wörter und keine Wortvarianten zu berücksichtigen.

$ ack -ch -w restrict 

Wir können das obige Befehlsergebnis auch einschränken, um nur Python-Dateien zu berücksichtigen:

$ ack -ch -w --python restrict

Wir können auch die Zeit verwenden Befehl, um die Geschwindigkeit unserer Suchen zu überwachen:

$ time ack -ch restrict

Indem wir in unseren Suchmusterkriterien spezifischer sind, erhalten wir im Vergleich zu den obigen Ergebnissen eine schnellere Ausgabe, wie unten gezeigt.

$ time ack -ch -w --python restrict

Wir könnten auch die tatsächlichen Dateinamen ausgeben, die einem Suchmuster entsprechen.

$ ack -f --python

Das ack-Suchmuster könnte auch auf die Namenskonvention einer Datei abzielen. Irgendein C Datei mit der „log “ kann mit dem folgenden Befehl abgeglichen werden:

$ ack -g log --cc

Die Bestätigung Suchwerkzeug ist sehr flexibel, wenn es unter einem Quellcodeverzeichnis gehandhabt wird. Sie können seine Verwendung immer noch auf Dateien in Ihrer Linux-Umgebung anwenden. Es ist erweiterbar und schnell. Verwenden Sie den man ack Befehl, um weitere Optionen zum Erkunden dieses schnellen und leichten Tools zu finden.


Linux
  1. Verwendung des Linux-Hexdump-Befehls mit praktischen Beispielen

  2. Verwendung von Pipes und Named Pipes unter Linux (mit Beispielen)

  3. SCP-Befehl in Linux:Verwendung mit Beispielen

  4. So verwenden Sie den Rmmod-Befehl unter Linux mit Beispielen

  5. So verwenden Sie den Befehl zum Herunterfahren und Neustarten von Linux mit Beispielen

So installieren und verwenden Sie den Befehl locate unter Linux

So installieren und verwenden Sie den Ping-Befehl unter Linux

So installieren Sie Dig unter Linux mit Befehlszeilenbeispielen

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie den Ack-Befehl im Linux-System

So installieren und verwenden Sie den Ack-Befehl unter Linux