6 L-Aħjar Għodod tal-CLI biex Fittex Dejta b'Test Sempliċi billi tuża Espressjonijiet Regolari


Din il-gwida tagħmel dawra ta 'wħud mill-aqwa għodod tal-linja tal-kmand li jintużaw għat-tiftix ta' kordi jew mudelli li jaqblu f'fajls ta 'test. Dawn l-għodod ġeneralment jintużaw flimkien ma 'espressjonijiet regolari - imqassra bħala REGEX - li huma kordi uniċi biex jiddeskrivu mudell ta' tfittxija.

Mingħajr ħafna aktar dewmien, ejja ngħaddasa.

1. Kmand Grep

Fl-ewwel post hemm l-għodda ta 'utilità grep - hija akronimu għal Global Regular Expression Print, hija għodda b'saħħitha tal-linja tal-kmand li tkun utli meta tfittex għal string speċifika jew mudell f'fajl.

Grep jibgħat b'distribuzzjonijiet moderni tal-Linux awtomatikament u jagħtik il-flessibilità li tirritorna diversi riżultati tat-tiftix. Bil-grep, tista 'twettaq firxa vasta ta' funzjonament bħal:

  • Fittex kordi jew mudelli li jaqblu f'fajl.
  • Fittex strings jew mudelli li jaqblu f'fajls Gzipped.
  • Għodd in-numru ta' logħbiet ta' string.
  • Ipprintja n-numri tal-linja li fihom is-sekwenza jew il-mudell.
  • Fittex b'mod rikorsiv is-sekwenza fid-direttorji.
  • Agħmel tfittxija b'lura (jiġifieri Uri r-riżultati ta' kordi li ma jaqblux mal-kriterji tat-tfittxija).
  • Injora s-sensittività tal-każi meta tkun qed tfittex kordi.

Is-sintassi għall-użu tal-kmand grep hija pjuttost sempliċi:

$ grep pattern FILE

Pereżempju, biex tfittex is-sekwenza 'Linux' f'fajl, ngħidu aħna, hello.txt filwaqt li tinjora s-sensittività tal-każi, mexxi l-kmand:

$ grep -i Linux hello.txt

Biex tikseb aktar għażliet li tista 'tuża ma' grep, sempliċement aqra l-artiklu tagħna li jagħti eżempji ta 'eżempji ta' kmand grep aktar avvanzati.

2. Sed Kmand

test ta' manipulazzjoni f'fajl ta' test. Sed tfittex, tiffiltra u tissostitwixxi kordi f'fajl partikolari b'mod mhux interattiv.

B'mod awtomatiku, il-kmand sed jistampa l-output għal STDOUT (Standard Out), li jimplika li r-riżultat tal-eżekuzzjoni huwa stampat fuq it-terminal minflok jiġi ffrankat f'fajl.

Il-kmand tas-Sed huwa invokat kif ġej:

$ sed -OPTIONS command [ file to be edited ]

Pereżempju, biex tissostitwixxi l-istanzi kollha ta 'Unix b'Linux, invoka l-kmand:

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

Jekk trid terġa 'tidderieġi l-output minflok tipprintjaha fuq it-terminal, uża s-sinjal ta' direzzjoni mill-ġdid ( > ) kif muri.

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

L-output tal-kmand jiġi ffrankat fil-fajl output.txt minflok jiġi stampat fuq l-iskrin.

Biex tiċċekkja aktar għażliet li jistgħu jintużaw, għal darb'oħra iċċekkja l-paġni man.

$ man sed

3. Kmand Ack

Ack hija għodda tal-linja tal-kmand veloċi u portabbli miktuba fil-Perl. Ack huwa meqjus bħala sostitut faċli għall-utilità grep u l-outputs jirriżulta b'mod viżwalment attraenti.

Ack kmand ifittex il-fajl jew id-direttorju għal-linji li fihom it-taqbila għall-kriterji tat-tfittxija. Imbagħad jenfasizza s-sekwenza li tqabbel fil-linji.
Ack għandu l-kapaċità li jiddistingwi fajls ibbażati fuq l-estensjonijiet tal-fajls tagħhom, u sa ċertu punt, il-kontenut fil-fajls.

Sintassi tal-kmand Ack:

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

Pereżempju, biex tiċċekkja għat-terminu ta' tfittxija Linux, mexxi:

$ ack Linux hello.txt

L-għodda tat-tfittxija hija pjuttost intelliġenti u Jekk l-ebda fajl jew direttorju ma jiġi pprovdut mill-utent, tfittex fid-direttorju u sottodirettorji attwali għall-mudell tat-tfittxija.

Fl-eżempju hawn taħt, l-ebda fajl jew direttorju ma ġie pprovdut, iżda ack skopra awtomatikament il-fajl disponibbli u fittex il-mudell li jaqbel ipprovdut.

$ ack Linux

Biex tinstalla ack fis-sistema tiegħek ħaddem il-kmand:

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

4. Kmand Awk

Awk hija lingwa ta' skripts sħiħa u wkoll għodda għall-ipproċessar tat-test u l-manipulazzjoni tad-dejta. Hija tfittex fajls jew programmi li fihom il-mudell tat-tfittxija. Meta jinstab is-sekwenza jew il-mudell, awk jieħu azzjoni fuq il-logħba jew il-linja u jistampa r-riżultati fuq STDOUT.

Il-mudell AWK huwa magħluq bejn ċineg kaboċċi filwaqt li l-programm kollu huwa magħluq fi kwotazzjonijiet singoli.

Ejja nieħdu l-aktar eżempju sempliċi. Ejja nassumu li qed tipprintja d-data tas-sistema tiegħek kif muri:

$ date

Ejja ngħidu li trid biss tipprintja l-ewwel valur, li huwa l-jum tal-ġimgħa. F'dak il-każ, pajp l-output f'awk kif muri:

$ date | awk '{print $1}'

Biex turi valuri sussegwenti, isseparahom billi tuża virgola kif muri:

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

Il-kmand t'hawn fuq se juri l-jum tal-ġimgħa u d-data tax-xahar.

Biex tikseb aktar għażliet li tista 'tuża ma' awk, sempliċement aqra s-serje tagħna ta 'kmand awk.

5. Fittex tal-fidda

It-tiftix tal-fidda huwa għodda ta 'tiftix ta' kodiċi ta 'cross-platform u opensource simili għal ack iżda b'enfasi fuq il-veloċità. Jagħmilha faċli għalik li tfittex string speċifika fil-fajls fl-iqsar żmien possibbli:

Sintassi:

$ ag OPTIONS search_pattern /path/to/file

Pereżempju, biex tfittex is-sekwenza 'Linux' f'fajl hello.txt invoka l-kmand:

$ ag Linux hello.txt

Għal għażliet addizzjonali, żur il-paġni man:

$ man ag

6. Ripgrep

Fl-aħħar nett, għandna l-għodda tal-linja tal-kmand ripgrep. Ripgrep hija utilità multi-pjattaforma għat-tiftix ta 'mudelli regex. Huwa ħafna aktar mgħaġġel mill-għodod ta 'tfittxija kollha msemmija qabel u jfittex b'mod rikorsiv direttorji għal mudelli li jaqblu. F'termini ta 'veloċità u prestazzjoni, l-ebda għodda oħra tispikka dik Ripgrep.

B'mod awtomatiku, ripgrep se jaqbeż fajls binarji/fajls moħbija u direttorji. Ukoll, kun avżat li b'mod awtomatiku mhux se jfittex fajls li huma injorati minn fajls .gitignore/.ignore/.rgignore.

Ripgrep jippermettilek ukoll li tfittex tipi ta 'fajls speċifiċi. Pereżempju, biex tillimita t-tfittxija tiegħek għal fajls Javascript eżegwi:

$ rg -Tsj

Is-sintassi għall-użu ta' ripgrep hija pjuttost faċli:

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

Pereżempju. Biex tfittex każijiet tas-sekwenza 'Linux' f'fajls li jinsabu fid-direttorju attwali, mexxi l-kmand:

$ rg Linux

Biex tinstalla ripgrep fis-sistema tiegħek mexxi l-kmandi li ġejjin:

$ 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]

Għal għażliet addizzjonali, żur il-paġni man:

$ man rg

Dawn huma wħud mill-għodod tal-linja tal-kmand l-aktar użati għat-tiftix, l-iffiltrar u l-manipulazzjoni tat-test fil-Linux. Jekk għandek għodod oħra li tħoss li ħallejna barra, għarrafna fit-taqsima tal-kummenti.