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.