6 Bescht CLI Tools fir Plain-Textdaten ze sichen mat regelméissegen Ausdréck


Dëse Guide mécht en Tour duerch e puer vun de beschten Kommandozeilen Tools déi benotzt gi fir passende Strings oder Musteren an Textdateien ze sichen. Dës Tools ginn normalerweis niewent reguläre Ausdréck benotzt - verkierzt als REGEX - déi eenzegaarteg Saiten sinn fir e Sichmuster ze beschreiwen.

Ouni vill weider Ado, loosst eis dauchen.

1. Grep Kommando

Op der éischter Plaz kënnt de grep Utility-Tool - ass en Akronym fir Global Regular Expression Print, ass e mächtege Kommandozeil-Tool dat praktesch kënnt wann Dir no enger spezifescher String oder e Muster an enger Datei sicht.

Grep schéckt mat modernen Linux Verdeelungen als Standard a gëtt Iech d'Flexibilitéit fir verschidde Sichresultater zréckzekommen. Mat grep kënnt Dir eng grouss Gamme vu Funktiounen ausféieren wéi:

  • Sich no Strings oder passende Musteren an engem Fichier.
  • Sich no Strings oder passende Musteren a Gzipped Dateien.
  • D'Zuel vun de String Matcher zielen.
  • Dréckt d'Zeilnummeren déi d'String oder d'Muster enthalen.
  • Sich rekursiv no der String an Verzeichnisser.
  • Maacht eng ëmgedréint Sich (dh Display Resultater vu Strings, déi net de Sichkriterien entspriechen).
  • Ignoréieren d'Kazempfindlechkeet wann Dir no Strings sicht.

D'Syntax fir de grep Kommando ze benotzen ass ganz einfach:

$ grep pattern FILE

Zum Beispill, fir no der String 'Linux' an enger Datei ze sichen, sot, hello.txt, während Dir d'Sensibilitéit ignoréiert, fuert de Kommando:

$ grep -i Linux hello.txt

Fir méi Optiounen ze kréien, déi Dir mat grep benotze kënnt, liest einfach eisen Artikel dee Beispiller méi fortgeschratt grep Kommando Beispiller.

2. sed Kommando

Manipulatioun Text an engem Text Fichier. Sed sicht, filtert an ersetzt Strings an enger bestëmmter Datei op eng net-interaktiv Manéier.

Par défaut dréckt sed Kommando den Ausgang op STDOUT (Standard Out), implizéiert datt d'Resultat vun der Ausféierung um Terminal gedréckt gëtt anstatt an enger Datei gespäichert ze ginn.

Sed Kommando gëtt wéi follegt opgeruff:

$ sed -OPTIONS command [ file to be edited ]

Zum Beispill, fir all Instanzen vun 'Unix' duerch 'Linux' ze ersetzen, rufft de Kommando op:

$ sed 's/Unix/Linux' hello.txt

Wann Dir d'Ausgab wëllt viruleiren anstatt se um Terminal ze drécken, benotzt d'Redirection Zeechen ( > ) wéi gewisen.

$ sed 's/Unix/Linux' hello.txt > output.txt

D'Ausgab vum Kommando gëtt an der output.txt Datei gespäichert anstatt um Bildschierm gedréckt ze ginn.

Fir méi Optiounen ze kucken, déi benotzt kënne ginn, kuckt nach eng Kéier d'Man Säiten.

$ man sed

3. Ack Kommando

Ack ass e séier a portable Kommandozeil-Tool a Perl geschriwwe. Ack gëtt als e frëndlechen Ersatz fir d'grep Utility ugesinn an d'Output Resultater op eng visuell attraktiv Manéier.

Ack Kommando sicht d'Datei oder Verzeechnes fir d'Linnen déi de Match fir d'Sichkriterien enthalen. Et markéiert dann déi passende String an de Linnen.
Ack huet d'Kapazitéit fir Dateien ze ënnerscheeden op Basis vun hiren Dateiextensiounen, an zu engem gewësse Mooss den Inhalt an de Dateien.

Ack Kommando Syntax:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

Zum Beispill, fir de Sichbegrëff Linux ze kontrolléieren, lafen:

$ ack Linux hello.txt

D'Sichinstrument ass zimmlech intelligent a Wa keng Datei oder Verzeechnes vum Benotzer zur Verfügung gestallt gëtt, sicht se den aktuellen Verzeechnes an Ënnerverzeechnunge fir d'Sichmuster.

Am Beispill hei drënner ass keng Datei oder Verzeechnes geliwwert ginn, awer ack huet automatesch déi verfügbar Datei entdeckt a gesicht no dem passende Muster.

$ ack Linux

Fir ack op Ärem System z'installéieren, lafen de Kommando:

$ sudo apt install ack-grep    [On Debian/Ubuntu]
$ sudo dnf install ack-grep    [On CentOS/RHEL]

4. Awk Kommando

Awk ass eng vollwäerteg Skriptsprooch an och en Textveraarbechtungs- an Datemanipulatiounsinstrument. Et sicht Dateien oder Programmer déi d'Sichmuster enthalen. Wann d'String oder d'Muster fonnt gëtt, hëlt awk Aktioun op de Match oder Linn an dréckt d'Resultater op STDOUT.

D'AWK Muster ass tëscht Curly Klameren zougemaach, während de ganze Programm an eenzel Zitater zougemaach ass.

Loosst eis dat einfachst Beispill huelen. Loosst eis unhuelen datt Dir den Datum vun Ärem System dréckt wéi gewisen:

$ date

Ugeholl datt Dir nëmmen den éischte Wäert ausdrécke wëllt, deen den Dag vun der Woch ass. An dësem Fall, päif d'Ausgab an awk wéi gewisen:

$ date | awk '{print $1}'

Fir spéider Wäerter ze weisen, trennt se mat engem Komma wéi gewisen:

$ date | awk '{print $1,$2}'

De Kommando uewendriwwer weist den Dag vun der Woch an den Datum vum Mount.

Fir méi Optiounen ze kréien, déi Dir mat awk benotze kënnt, liest einfach eis awk Kommando Serie.

5. Silver Searcher

De Sëlwer Sicher ass e Cross-Plattform an Opensource Code Sichinstrument ähnlech wéi ack awer mat engem Schwéierpunkt op Geschwindegkeet. Et mécht et einfach fir Iech no enger spezifescher String bannent Dateien an der kuerzer Zäit méiglech ze sichen:

Syntax:

$ ag OPTIONS search_pattern /path/to/file

Zum Beispill, fir no der String 'Linux' an enger Datei hello.txt ze sichen, rufft de Kommando op:

$ ag Linux hello.txt

Fir zousätzlech Optiounen, besicht d'Man Säiten:

$ man ag

6. Ripgrep

Endlech hu mir de ripgrep Kommandozeil Tool. Ripgrep ass e Cross-Plattform Utility fir Regex Musteren ze sichen. Et ass vill méi séier wéi all déi virdru genannte Sichinstrumenter a rekursiv sicht Verzeichnisser fir passende Musteren. Wat d'Geschwindegkeet an d'Leeschtung ugeet, steet keen aneren Tool eraus datt Ripgrep.

Par défaut spréngt ripgrep binär Dateien/verstoppte Dateien a Verzeichnisser. Gitt och ugeroden datt et standardiséiert gëtt net no Dateien ze sichen déi vun .gitignore/.ignore/.rgignore Dateien ignoréiert ginn.

Ripgrep erlaabt Iech och fir spezifesch Dateitypen ze sichen. Zum Beispill, fir Är Sich op Javascript Dateien ze limitéieren lafen:

$ rg -Tsj

D'Syntax fir ripgrep ze benotzen ass ganz einfach:

$ rg [OPTIONS] PATTERN [PATH...]

Zum Beispill. Fir no Beispiller vun der String 'Linux' an Dateien am aktuellen Verzeechnes ze sichen, fuert de Kommando:

$ rg Linux

Fir ripgrep op Ärem System z'installéieren, lafen déi folgend Kommandoen:

$ sudo apt install ripgrep      [On Debian/Ubuntu]
$ sudo pacman -S ripgrep        [On Arch Linux]
$ sudo zypper install ripgrep   [On OpenSuse]
$ sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

Fir zousätzlech Optiounen, besicht d'Man Säiten:

$ man rg

Dëst sinn e puer vun de meescht benotzte Kommandozeil-Tools fir Text an Linux ze sichen, ze filteren an ze manipuléieren. Wann Dir aner Tools hutt, déi Dir fillt datt mir ausgelooss hunn, lass eis et an der Kommentarsektioun wëssen.