Kif tuża l-kmand fgrep biex issib Strings tat-Test fil-Fajls
Qosor: F'din il-gwida faċli għall-Bidu, se niddiskutu xi eżempji prattiċi tal-kmand fgrep. Sa tmiem din il-gwida, l-utenti jkunu jistgħu jwettqu operazzjonijiet ta 'tfittxija ta' test b'mod effiċjenti billi jużaw l-interface tal-linja tal-kmand.
It-tiftix tat-test huwa wieħed mill-aktar operazzjonijiet li jsiru b'mod komuni. Madankollu, dan il-kompitu sempliċi malajr jieħu ħafna ħin jekk l-utenti ma jkunux familjari mal-għodod korretti. Fil-Linux, hemm diversi utilitajiet li jiffiltraw it-test bħal sed, cut, eċċ.
Madankollu, fil-Linux, fgrep hija l-aktar utilità preferuta għal tiftix ta 'test sempliċi. F'din il-gwida, se niddiskutu xi eżempji ta' prattika tal-kmand fgrep li jistgħu jintużaw fil-ħajja ta' kuljum.
Il-kmand fgrep f'Linux jaqa' taħt il-familja tal-kmand grep. Madankollu, tintuża biex tfittex il-mudell ta 'korda fissa minflok espressjonijiet regolari. Għalhekk l-isem tal-kmand huwa fgrep (GREP Fiss).
Is-sintassi tal-kmand fgrep hija simili għall-kmandi l-oħra tal-familja grep:
$ fgrep [OPTIONS] PATTERNS [FILES]
Biex tibda, ejja noħolqu fajl b'test sempliċi bil-kontenut li ġej biex tuża eżempju:
$ cat input.txt
Hawnhekk, nistgħu naraw li l-fajl tat-test huwa lest bil-kontenut tal-kampjun. Issa ejja niddiskutu xi eżempji komuni tal-kmand fgrep fil-ftit eżempji li ġejjin.
1. Kif fgrep Huwa Differenti mill-Kmandi grep u egrep?
Kif jissuġġerixxi l-isem, il-kmand fgrep jintuża biex tfittex il-mudelli tal-kordi fissi. Jinterpreta l-mudell bħala string fissa minflok espressjoni regolari. Għalhekk twettaq l-operazzjoni ta 'tfittxija b'mod effiċjenti fil-ħin.
Biex tifhem id-differenza, ejja nużaw karattru punt (.)
bil-kmand grep.
Din l-espressjoni regolari sempliċi taqbel ma' kwalunkwe karattru wieħed ħlief għat-tmiem tal-linja:
$ grep ha. input.txt
Fl-output ta 'hawn fuq, nistgħu naraw li l-karattru dot (.)
qabbel mat-test har, hat, and has.
Issa, ejja nużaw l-istess mudell mal-kmand fgrep u osservaw ir-riżultat:
$ fgrep ha. input.txt
Fl-output ta 'hawn fuq, nistgħu naraw li l-kmand jonqos milli jsib il-mudell mogħti.
Dan jiġri minħabba li l-kmand fgrep ma jagħrafx espressjonijiet regolari u jipprova jfittex il-mudell li ma jeżistix – \ha.”
.
[ Tista 'tħobb ukoll: X'inhi d-differenza bejn Grep, Egrep u Fgrep fil-Linux? ]
2. Kif Fittex Mudell f'Fajl
Nibdew bl-eżempju bażiku fejn se nfittxu professjonali string f'fajl input.txt:
$ fgrep professionals input.txt
Kif nistgħu naraw, it-tqabbil tal-mudell jirnexxi f'żewġ postijiet u huwa enfasizzat b'kulur aħmar.
3. Kif Issettja l-Kulur tal-Output Grep għal Disinji Imqabbla
Fl-eżempju preċedenti, rajna li, b'mod awtomatiku, il-mudell imqabbel huwa enfasizzat b'kulur aħmar. Madankollu, nistgħu nibdlu din l-imġieba billi nassenjaw valur differenti għall-varjabbli tal-ambjent GREP_COLOR
.
Ejja nassenjaw il-valur 32 għall-varjabbli ta' l-ambjent GREP_COLOR
biex tenfasizza l-mudell imqabbel b'kulur aħdar:
$ export GREP_COLOR=32 $ fgrep professionals input.txt
Issa, qabel ma tgħaddi għall-eżempju li jmiss, aqla 'l-varjabbli ambjentali GREP_COLOR biex tippermetti l-imġieba default:
$ unset GREP_COLOR
4. Kif Fittex Disinji Multipli f'Fajl
Xi drabi, għandna bżonn inwettqu tqabbil tal-mudelli għal kordi multipli. F'każijiet bħal dawn, nistgħu nipprovdu l-mudelli mill-fajl tat-test minflok l-argument tal-linja tal-kmand.
Ejja noħolqu fajl ta 'test li fih mudelli multipli fuq linja separata:
$ cat pattern.txt professionals website
Issa, ejja nużaw dan il-fajl bl-għażla -f
għal tqabbil ta’ mudelli multipli:
$ fgrep -f pattern.txt input.txt
Fl-output ta 'hawn fuq, nistgħu naraw li t-tqabbil tal-mudell jirnexxi għall-professjonisti tal-kordi u l-websajt.
5. Kif tillimita n-numru ta 'logħbiet fil-fajl
B'mod awtomatiku, il-kmand fgrep ikompli jwettaq it-tqabbil tal-mudell sakemm il-fajl kollu jiġi pproċessat.
Madankollu, xi kultant irridu nillimitaw in-numru ta 'logħbiet. F'każijiet bħal dawn, nistgħu nużaw l-għażla -m
bil-kmand:
$ fgrep -m 1 professionals input.txt TecMint was started on 15th August 2012 by technical professionals and all the
F'dan l-eżempju, il-kmand fgrep iwaqqaf l-ipproċessar tal-fajl wara li jaqbel mal-ewwel mudell.
6. Kif Tipprintja l-Isem tal-Fajl Meta Tfittex Pattern
Xi drabi, irridu biss insibu l-isem tal-fajls li fihom mudell partikolari huwa preżenti. F'każijiet bħal dawn, nistgħu nużaw l-għażla -l
tal-kmand fgrep:
$ fgrep -l professionals input.txt input.txt
Hawnhekk, nistgħu naraw li l-kmand biss jistampa l-isem tal-fajl minflok il-linji bil-mudelli mqabbla.
7. Kif Tipprintja l-Isem tal-Fajl Meta It-Tqabbil tal-Disinn Jfalli
Fl-eżempju preċedenti, rajna kif tipprintja l-isem tal-fajl meta t-tqabbil tal-mudell jirnexxi. Issa, ejja naraw kif twettaq l-operazzjoni b'mod invers.
Ejja nippruvaw insibu l-mudell li ma jeżistix fil-fajl u osserva r-riżultat:
$ fgrep -L non-existing-word input.txt input.txt
F'dan l-eżempju, użajna l-għażla -L
tal-kmand li jistampa l-isem tal-fajl meta t-tqabbil tal-mudelli ma jirnexxix.
8. Kif Trażżan Messaġġi ta 'Żball
L-immaniġġjar tal-iżbalji għandu rwol kruċjali waqt il-kitba ta' skripts tal-qoxra. Madankollu, f'xi xenarji mhux kritiċi, nistgħu ninjoraw b'mod sikur il-messaġġi ta 'żball.
F'fgrep, nistgħu nużaw l-għażla -s
li trażżan żbalji relatati ma' fajls li ma jeżistux jew li ma jinqrawx. Biex tifhem din l-imġieba b'mod aħjar, ejja nippruvaw infittxu mudell fil-fajl li ma jeżistix:
$ fgrep -s professionals non-existing-file.txt $ echo $? 2
Fl-output ta 'hawn fuq, nistgħu naraw li l-kmand ma juri l-ebda żball fuq il-fluss ta' żball standard. Madankollu, in-nuqqas huwa rrappurtat mill-valur tar-ritorn mhux żero.
Minbarra dan, nistgħu wkoll nosservaw l-istess imġieba meta l-fajl ma jinqarax. Allura, l-ewwel, immodifika l-permess tal-fajl billi tuża l-kmand chmod:
$ chmod 000 input.txt $ ls -l input.txt
Issa, ipprova fittex il-mudell u osserva r-riżultat:
$ fgrep -s professionals input.txt $ echo $?
F'dan l-artikolu, iddiskutejna xi eżempji utli tal-kmand fgrep. Dawk li jibdew jistgħu jużaw dawn l-eżempji fil-ħajja ta 'kuljum biex itejbu l-produttività waqt li jaħdmu mal-Linux.
Taf bl-aħjar eżempju ieħor tal-kmand fgrep fil-Linux? Għidilna l-fehmiet tiegħek fil-kummenti hawn taħt.