Wéi benotzt fgrep Kommando fir Text Strings an Dateien ze fannen
Kuerz: An dësem Ufängerfrëndleche Guide wäerte mir e puer praktesch Beispiller vum fgrep Kommando diskutéieren. Um Enn vun dësem Guide kënnen d'Benotzer Text Sich Operatiounen effizient ausféieren mat der Kommandozeil Interface.
Text Sich ass eng vun den allgemengste Operatiounen. Wéi och ëmmer, dës einfach Aufgab gëtt séier Zäitopwänneg wann d'Benotzer net mat de richtege Tools vertraut sinn. Am Linux ginn et verschidden Textfilter-Utilities wéi sed, cut, etc.
Wéi och ëmmer, a Linux ass fgrep dat am léifsten Utility fir einfach Text Sich. An dësem Guide wäerte mir e puer Praxis Beispiller vum fgrep Kommando diskutéieren, deen am Alldag benotzt ka ginn.
De fgrep Kommando am Linux fällt ënner der Famill vum grep Kommando. Wéi och ëmmer, et gëtt benotzt fir no dem fixe Stringmuster ze sichen anstatt regelméisseg Ausdréck. Dofir ass den Numm vum Kommando fgrep (Fixed GREP).
D'Syntax vum fgrep Kommando ass ähnlech wéi déi aner grep Famill Kommandoen:
$ fgrep [OPTIONS] PATTERNS [FILES]
Fir unzefänken, loosst eis eng einfach Textdatei erstellen mat den folgenden Inhalter fir e Beispill ze benotzen:
$ cat input.txt

Hei kënne mir gesinn datt d'Textdatei fäerdeg ass mat dem Probeinhalt. Loosst eis elo e puer allgemeng Beispiller vum fgrep Kommando an den nächste Beispiller diskutéieren.
1. Wéi fgrep ass anescht wéi grep an egrep Kommandoen?
Wéi den Numm et scho seet, gëtt de Kommando fgrep benotzt fir no de fixe Stringmuster ze sichen. Et interpretéiert d'Muster als e fixe String anstatt e reguläre Ausdrock. Dofir mécht et d'Sichoperatioun op eng Zäiteffizient Manéier.
Fir den Ënnerscheed ze verstoen, loosst eis e Punkt (.) Charakter mam grep Kommando benotzen.
Dësen einfache reguläre Ausdrock entsprécht all eenzel Charakter ausser fir d'Enn vun der Linn:
$ grep ha. input.txt

Am uewe genannte Output kënne mir gesinn datt de Punkt (.) Zeeche mat dem Text har, hat an huet.
Elo, loosst eis datselwecht Muster mam fgrep Kommando benotzen an d'Resultat beobachten:
$ fgrep ha. input.txt
An der uewe genannter Ausgab kënne mir gesinn datt de Kommando de gegebene Muster net fënnt.
Dëst geschitt well de fgrep Kommando net regulär Ausdréck erkennt a probéiert no dat net existent Muster ze sichen - \ha..
[ Dir kënnt och gär hunn: Wat ass den Ënnerscheed tëscht Grep, Egrep a Fgrep am Linux? ]
2. Wéi Sich no engem Muster an enger Datei
Loosst eis mat dem Basisbeispill ufänken, wou mir no engem String-Profi an enger input.txt Datei sichen:
$ fgrep professionals input.txt

Wéi mir kënne gesinn, geléngt d'Mustermatching op zwou Plazen an et ass a roude Faarf markéiert.
3. Wéi Setzt Grep Output Faarf fir passende Musteren
Am virege Beispill hu mir gesinn datt, par défaut, de passende Muster a roude Faarf markéiert ass. Wéi och ëmmer, mir kënnen dëst Verhalen änneren andeems en den GREP_COLOR Ëmfeldvariablen en anere Wäert zouginn.
Loosst eis de Wäert 32 un d'GREP_COLOR Ëmfeldvariabel zouginn fir dat passend Muster a gréng Faarf ze markéieren:
$ export GREP_COLOR=32
$ fgrep professionals input.txt

Elo, ier Dir op dat nächst Beispill plënnert, deset d'GREP_COLOR Ëmfeld Variabel fir de Standardverhalen z'aktivéieren:
$ unset GREP_COLOR
4. Wéi Sich no Multiple Musteren an enger Datei
Heiansdo musse mir Mustermatching fir verschidde Saiten ausféieren. An esou Fäll kënne mir d'Muster aus der Textdatei amplaz vum Kommandozeilargument ubidden.
Loosst eis eng Textdatei erstellen déi verschidde Mustere op enger separater Linn enthält:
$ cat pattern.txt
professionals
website
Elo, loosst eis dës Datei mat der -f Optioun fir Multiple Muster Matching benotzen:
$ fgrep -f pattern.txt input.txt

An der uewe genannter Ausgab kënne mir gesinn datt d'Mustermatching erfollegräich ass fir d'Strings Professionnelen a Websäit.
5. Wéi Limitéiert d'Zuel vun de Matcher am Fichier
Par défaut fiert de fgrep Kommando weider d'Mustermatching auszeféieren bis déi ganz Datei veraarbecht gëtt.
Wéi och ëmmer, heiansdo musse mir d'Zuel vun de Matcher limitéieren. An esou Fäll kënne mir d'Optioun -m mam Kommando benotzen:
$ fgrep -m 1 professionals input.txt
TecMint was started on 15th August 2012 by technical professionals and all the
An dësem Beispill stoppt de Kommando fgrep d'Dateiveraarbechtung nodeems se mam éischte Muster passen.
6. Wéi Drécken Dateinumm Wann Muster Sich
Heiansdo brauche mir just den Numm vun de Dateien ze fannen an deenen e bestëmmte Muster präsent ass. An esou Fäll kënne mir d'Optioun -l vum fgrep Kommando benotzen:
$ fgrep -l professionals input.txt
input.txt
Hei kënne mir gesinn datt de Kommando just den Dateinumm dréckt anstatt d'Linnen mat de passenden Musteren.
7. Wéi Drécken Dateinumm Wann Muster Matching feelt
Am virege Beispill hu mir gesinn wéi de Dateinumm gedréckt gëtt wann d'Mustermatching geléngt. Loosst eis elo kucken wéi d'Operatioun op eng ëmgedréint Manéier ausféiert.
Loosst eis probéieren dat net existent Muster an der Datei ze fannen an d'Resultat ze beobachten:
$ fgrep -L non-existing-word input.txt
input.txt
An dësem Beispill hu mir d'Optioun -L vum Kommando benotzt, deen den Dateinumm dréckt wann d'Mustermatching net geléngt.
8. Wéi Feeler Messagen z'ënnerdrécken
Fehlerhandhabung spillt eng entscheedend Roll beim Schreiwen vun Shell-Skripte. Wéi och ëmmer, an e puer net-kriteschen Szenarie kënne mir d'Feelermeldungen sécher ignoréieren.
Am fgrep kënne mir d'Optioun -s benotzen, déi Fehler am Zesummenhang mat net existéierenden oder onliesbare Dateien ënnerdréckt. Fir dëst Verhalen op eng besser Manéier ze verstoen, loosst eis probéieren no engem Muster an der net existéierender Datei ze sichen:
$ fgrep -s professionals non-existing-file.txt
$ echo $?
2
An der uewe genannter Ausgab kënne mir gesinn datt de Kommando kee Feeler am Standardfehlerstream weist. Wéi och ëmmer, den Echec gëtt vum Net-Null Retourwäert gemellt.
Zousätzlech zu dësem kënne mir och datselwecht Verhalen beobachten wann d'Datei onliesbar ass. Also, als éischt, ännert d'Datei Erlaabnis mam chmod Kommando:
$ chmod 000 input.txt
$ ls -l input.txt
Elo probéiert d'Muster ze sichen an d'Resultat ze beobachten:
$ fgrep -s professionals input.txt
$ echo $?

An dësem Artikel hu mir e puer nëtzlech Beispiller vum fgrep Kommando diskutéiert. Ufänger kënnen dës Beispiller am Alldag benotzen fir d'Produktivitéit ze verbesseren wärend Dir mat Linux schafft.
Wësst Dir vun engem anere beschte Beispill vum fgrep Kommando am Linux? Loosst eis Är Meenung an de Kommentaren hei drënner wëssen.