Adaty aňlatmalary ulanyp, gönümel tekst maglumatlary gözlemek üçin 6 sany iň oňat CLI guraly


Bu gollanma, tekst faýllaryndaky gabat gelýän setirleri ýa-da nagyşlary gözlemek üçin ulanylýan iň oňat buýruk setir gurallary bilen tanyşýar. Bu gurallar, adatça, gözleg görnüşini beýan etmek üçin özboluşly setirler bolan REGEX hökmünde gysgaldylan yzygiderli aňlatmalar bilen bilelikde ulanylýar.

Has kän bir sözlemiz, geliň.

1. Grep buýrugy

Birinjiden, grep peýdaly gural - Global Regular Expression Print-iň gysgaldylan görnüşi, faýlda belli bir setir ýa-da nagyş gözläniňde peýdaly güýçli buýruk setiri guralydyr.

“Grep” häzirki zaman Linux paýlaýjylary bilen iberilýär we dürli gözleg netijelerini yzyna gaýtarmak üçin çeýeligi üpjün edýär. “Grep” bilen, köp sanly işlemegi ýerine ýetirip bilersiňiz:

  • Faýlda setirleri ýa-da gabat gelýän nagyşlary gözläň.
  • Gzipped faýllarynda setirleri ýa-da gabat gelýän nagyşlary gözläň.
  • Setir gabat gelýänleriň sanyny hasaplaň.
  • Setir ýa-da nagyş bolan setir sanlaryny çap ediň.
  • Kataloglardaky setir üçin yzygiderli gözläň.
  • Ters gözleg geçiriň (meselem, gözleg ölçeglerine laýyk gelmeýän setirleriň netijelerini görkeziň).
  • Setir gözläniňizde hadysanyň duýgurlygyna üns bermäň.

Grep buýrugyny ulanmak üçin sintaksis gaty ýönekeý:

$ grep pattern FILE

Mysal üçin, faýlda Linux setirini gözlemek üçin, hello.txt diýiň, hadysanyň duýgurlygyna ähmiýet bermän, buýrugy işlediň:

$ grep -i Linux hello.txt

Grep bilen ulanyp boljak has köp opsiýa almak üçin, has ösen grep buýruk mysallaryny görkezýän makalamyzy okaň.

2. buýruk

tekst faýlynda manipulýasiýa teksti. Sed gözleýär, süzýär we berlen faýlda setirleri interaktiw däl görnüşde çalyşýar.

Düzgüne görä, sed buýrugy çykyşy STDOUT (Standard Out) görnüşinde çap edýär, ýerine ýetirişiň netijesi faýlda saklanman, terminalda çap edilýär.

Sed buýrugy aşakdaky ýaly ulanylýar:

$ sed -OPTIONS command [ file to be edited ]

Mysal üçin, “Unix” -iň ähli mysallaryny “Linux” bilen çalyşmak üçin buýrugy çagyryň:

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

Çykyşlary terminalda çap etmegiň ýerine gönükdirmek isleseňiz, görkezilişi ýaly (>) gönükdirme belgisini ulanyň.

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

Buýrugyň çykyşy ekranda çap edilmegiň ýerine çykyş.txt faýlynda saklanýar.

Ulanylyp bilinjek has köp warianty barlamak üçin, adam sahypalaryny ýene bir gezek gözden geçiriň.

$ man sed

3. Ack buýrugy

Ack Perl-de ýazylan çalt we göçme buýruk setiridir. Ack grep peýdasy üçin dostlukly çalyşma hasaplanýar we netijeler göze ýakymly görnüşde çykýar.

Ack buýrugy gözleg kriteriýalaryna laýyk gelýän setirler üçin faýly ýa-da katalogy gözleýär. Soňra setirlerdäki gabat gelýän setiri görkezýär.
Ack faýl giňeltmelerine we belli bir derejede faýllardaky mazmuna görä faýllary tapawutlandyrmak ukybyna eýedir.

Ack buýruk sintaksis:

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

Mysal üçin, Linux gözleg sözüni barlamak üçin işlediň:

$ ack Linux hello.txt

Gözleg gurallary gaty akylly we ulanyjy tarapyndan hiç bir faýl ýa-da katalog berilmese, gözleg nusgasy üçin häzirki katalogy we kiçi bukjalary gözleýär.

Aşakdaky mysalda hiç bir faýl ýa-da katalog berilmedi, ýöne ack elýeterli faýly awtomatiki tapdy we berlen gabat gelýän nagşy gözledi.

$ ack Linux

Ulgamyňyza ack gurmak üçin buýrugy işlediň:

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

4. Awk buýrugy

Awk - doly hukukly skript dili, şeýle hem teksti gaýtadan işlemek we maglumatlary manipulirlemek guraly. Gözleg görnüşini öz içine alýan faýllary ýa-da programmalary gözleýär. Setir ýa-da nagyş tapylanda awk gabat ýa-da setir boýunça hereket edýär we netijeleri STDOUT-da çap edýär.

AWK nagşy egri ýaýlaryň arasynda, tutuş programma bolsa bir sitata bilen gurşalan.

Iň ýönekeý mysal alalyň. Ulgamyňyzyň senesini görkezilişi ýaly çap edýändigiňizi kabul edeliň:

$ date

Diňe hepdäniň güni bolan ilkinji bahany çap etmek isleýärsiňiz öýdýän. Bu ýagdaýda çykyşy görkezilişi ýaly awka geçiriň:

$ date | awk '{print $1}'

Soňky bahalary görkezmek üçin, görkezilişi ýaly vergi bilen bölüň:

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

Aboveokardaky buýruk hepdäniň gününi we aýyň senesini görkezer.

Awk bilen ulanyp boljak has köp opsiýa almak üçin, awk buýruk seriýamyzy okaň.

5. Kümüş gözlegçi

Kümüş gözlegçi, akka meňzeş, ýöne tizlige ünsi çekýän kross platforma we açyk kod gözleg guralydyr. Iň gysga wagtda faýllaryň içinde belli bir setir gözlemegi aňsatlaşdyrýar:

Sintaksis:

$ ag OPTIONS search_pattern /path/to/file

Mysal üçin, hello.txt faýlyndaky Linux setirini gözlemek üçin buýrugy çagyryň:

$ ag Linux hello.txt

Goşmaça mümkinçilikler üçin adam sahypalaryna giriň:

$ man ag

6. Ripgrep

Ahyrynda, ripgrep buýruk setiri guraly bar. “Ripgrep” regex nagyşlaryny gözlemek üçin platforma peýdalydyr. Öň agzalan gözleg gurallarynyň hemmesinden has çalt we gabat gelýän nagyşlar üçin kataloglary yzygiderli gözleýär. Tizlik we öndürijilik nukdaýnazaryndan Ripgrep-den başga gural ýok.

Düzgüne görä, ripgrep ikilik faýllary/gizlin faýllary we kataloglary geçer. Şeýle hem, adaty ýagdaýda .gitignore/.ignore/.rgignore faýllary hasaba alynmaýan faýllary gözlemezligi maslahat beriň.

“Ripgrep” size aýratyn faýl görnüşlerini gözlemäge mümkinçilik berýär. Mysal üçin, gözlegiňizi Javascript faýllary bilen çäklendirmek üçin:

$ rg -Tsj

Ripgrep ulanmak üçin sintaksis gaty aňsat:

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

Mysal üçin. Häzirki bukjanyň içinde ýerleşýän faýllarda “Linux” setiriniň mysallaryny gözlemek üçin buýrugy işlediň:

$ rg Linux

Ripgrep ulgamyňyzy gurmak üçin aşakdaky buýruklary işlediň:

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

Goşmaça mümkinçilikler üçin adam sahypalaryna giriň:

$ man rg

Linux-da tekst gözlemek, süzmek we manipulirlemek üçin iň köp ulanylýan buýruk setir gurallary. Başga gurallarymyz bar bolsa, özümizi taşlandygymyzy duýsaňyz, teswirler bölüminde bize habar beriň.