Hvernig á að nota fgrep skipun til að finna textastrengi í skrám


Stutt: Í þessari byrjendavænu handbók munum við ræða nokkur hagnýt dæmi um fgrep skipunina. Í lok þessarar handbókar munu notendur geta framkvæmt textaleit á skilvirkan hátt með því að nota skipanalínuviðmótið.

Textaleit er ein algengasta aðgerðin. Hins vegar verður þetta einfalda verkefni fljótt tímafrekt ef notendur þekkja ekki rétt verkfæri. Í Linux eru ýmis textasíunarforrit eins og sed, cut o.s.frv.

Hins vegar, í Linux, er fgrep ákjósanlegasta tólið fyrir einfalda textaleit. Í þessari handbók ætlum við að ræða nokkur æfingadæmi um fgrep skipunina sem hægt er að nota í daglegu lífi.

Fgrep skipunin í Linux fellur undir fjölskyldu grep skipunarinnar. Hins vegar er það notað til að leita að föstu strengamynstrinu í stað venjulegra segða. Þess vegna er nafn skipunarinnar fgrep (Fast GREP).

Setningafræði fgrep skipunarinnar er svipuð og aðrar grep fjölskylduskipanir:

$ fgrep [OPTIONS] PATTERNS [FILES]

Til að byrja skulum við búa til einfalda textaskrá með eftirfarandi innihaldi til að nota dæmi:

$ cat input.txt

Hér getum við séð að textaskráin er tilbúin með sýnishorninu. Nú skulum við ræða nokkur algeng dæmi um fgrep skipunina í næstu dæmum.

1. Hvernig fgrep er öðruvísi en grep og egrep skipanir?

Eins og nafnið gefur til kynna er fgrep skipunin notuð til að leita að föstu strengamynstrinu. Það túlkar mynstrið sem fastan streng í stað reglulegrar tjáningar. Þess vegna framkvæmir það leitaraðgerðina á tímahagkvæman hátt.

Til að skilja muninn skulum við nota punkt (.) staf með grep skipuninni.

Þessi einfalda reglubundna tjáning passar við hvern einasta staf nema fyrir lok línunnar:

$ grep ha. input.txt

Í úttakinu hér að ofan getum við séð að punkturinn (.) stafurinn passaði við textann har, hat og has.

Nú skulum við nota sama mynstur með fgrep skipuninni og fylgjast með niðurstöðunni:

$ fgrep ha. input.txt

Í úttakinu hér að ofan getum við séð að skipunin finnur ekki tiltekið mynstur.

Þetta gerist vegna þess að fgrep skipunin þekkir ekki reglulegar segðir og reynir að leita að mynstrinu sem ekki er til - \ha..

[Þér gæti líka líkað við: Hver er munurinn á Grep, Egrep og Fgrep í Linux? ]

2. Hvernig á að leita að mynstri í skrá

Byrjum á grunndæminu þar sem við munum leita að strengjasérfræðingi í input.txt skrá:

$ fgrep professionals input.txt

Eins og við sjáum tekst mynstursamsvörunin á tveimur stöðum og hún er auðkennd með rauðum lit.

3. Hvernig á að stilla Grep úttakslit fyrir samsvörun mynstur

Í fyrra dæminu sáum við að sjálfgefið er að samsvarandi mynstur er auðkennt í rauðum lit. Hins vegar getum við breytt þessari hegðun með því að tengja annað gildi á GREP_COLOR umhverfisbreyturnar.

Við skulum tengja gildið 32 á GREP_COLOR umhverfisbreytuna til að auðkenna samsvarandi mynstur í grænum lit:

$ export GREP_COLOR=32
$ fgrep professionals input.txt

Nú, áður en þú ferð yfir í næsta dæmi, taktu GREP_COLOR umhverfisbreytuna úr til að virkja sjálfgefna hegðun:

$ unset GREP_COLOR

4. Hvernig á að leita að mörgum mynstrum í skrá

Stundum þurfum við að framkvæma mynstursamsvörun fyrir marga strengi. Í slíkum tilvikum getum við útvegað mynstrin úr textaskránni í stað skipanalínunnar.

Við skulum búa til textaskrá sem inniheldur mörg mynstur á sérstakri línu:

$ cat pattern.txt

professionals
website

Nú skulum við nota þessa skrá með -f valkostinum fyrir samsvörun margra mynstur:

$ fgrep -f pattern.txt input.txt

Í úttakinu hér að ofan getum við séð að mynstursamsvörunin heppnast fyrir strengjasérfræðinga og vefsíðu.

5. Hvernig á að takmarka fjölda samsvörunar í skrá

Sjálfgefið er að fgrep skipunin heldur áfram að framkvæma mynstursamsvörun þar til öll skráin er unnin.

Hins vegar þurfum við stundum að takmarka fjölda leikja. Í slíkum tilvikum getum við notað -m valkostinn með skipuninni:

$ fgrep -m 1 professionals input.txt

TecMint was started on 15th August 2012 by technical professionals and all the

Í þessu dæmi stöðvar fgrep skipunin skráarvinnslu eftir að hafa passað við fyrsta mynstur.

6. Hvernig á að prenta skráarnafn þegar leitað er að mynstri

Stundum þurfum við bara að finna nafnið á skránum þar sem tiltekið mynstur er til staðar. Í slíkum tilfellum getum við notað -l valkostinn í fgrep skipuninni:

$ fgrep -l professionals input.txt

input.txt

Hér getum við séð að skipunin prentar bara skráarnafnið í stað línanna með samsvarandi mynstrum.

7. Hvernig á að prenta skráarnafn þegar mynstursamsvörun mistekst

Í fyrra dæmi sáum við hvernig á að prenta skráarnafnið þegar mynstursamsvörun tekst. Nú skulum við sjá hvernig á að framkvæma aðgerðina á öfugan hátt.

Við skulum reyna að finna mynstur sem ekki er til í skránni og fylgjast með niðurstöðunni:

$ fgrep -L non-existing-word input.txt

input.txt

Í þessu dæmi notuðum við -L valkostinn í skipuninni sem prentar skráarnafnið þegar mynstursamsvörun tekst ekki.

8. Hvernig á að bæla villuskilaboð

Meðhöndlun villu gegnir mikilvægu hlutverki við að skrifa skeljaforskriftir. Hins vegar, í sumum ekki mikilvægum aðstæðum, getum við örugglega hunsað villuboðin.

Í fgrep getum við notað -s valmöguleikann sem bælir villur sem tengjast skrám sem ekki eru til eða ólesanlegar. Til að skilja þessa hegðun á betri hátt skulum við reyna að leita að mynstri í skránni sem ekki er til:

$ fgrep -s professionals non-existing-file.txt
$ echo $?

2

Í úttakinu hér að ofan getum við séð að skipunin sýnir enga villu í venjulegu villustraumi. Hins vegar er bilunin tilkynnt með skilagildinu sem er ekki núll.

Í viðbót við þetta getum við líka fylgst með sömu hegðun þegar skráin er ólæsileg. Svo, fyrst, breyttu skráarheimildinni með chmod skipuninni:

$ chmod 000 input.txt 
$ ls -l input.txt

Reyndu nú að leita að mynstrinu og athugaðu niðurstöðuna:

$ fgrep -s professionals input.txt 
$ echo $?

Í þessari grein ræddum við nokkur gagnleg dæmi um fgrep skipunina. Byrjendur geta notað þessi dæmi í daglegu lífi til að bæta framleiðni meðan þeir vinna með Linux.

Veistu um annað besta dæmi um fgrep skipunina í Linux? Láttu okkur vita af skoðunum þínum í athugasemdunum hér að neðan.