Zana 6 Bora za CLI za Kutafuta Data ya Maandishi-Wazi kwa Kutumia Maonyesho ya Kawaida


Mwongozo huu hutembelea baadhi ya zana bora za mstari wa amri ambazo hutumika kutafuta mifuatano au ruwaza zinazolingana katika faili za maandishi. Zana hizi kwa kawaida hutumiwa pamoja na misemo ya kawaida - iliyofupishwa kama REGEX - ambayo ni mifuatano ya kipekee ya kuelezea muundo wa utafutaji.

Bila ado zaidi, wacha tuzame.

1. Amri ya Grep

Kinachokuja kwa nafasi ya kwanza ni zana ya matumizi ya grep - ni kifupi cha Global Regular Expression Print, ni zana yenye nguvu ya mstari wa amri ambayo huja kwa manufaa wakati wa kutafuta mfuatano mahususi au mchoro katika faili.

Grep husafirisha na usambazaji wa kisasa wa Linux kwa chaguo-msingi na hukupa unyumbufu wa kurejesha matokeo mbalimbali ya utafutaji. Ukiwa na grep, unaweza kufanya safu kubwa ya kufanya kazi kama vile:

  • Tafuta mifuatano au ruwaza zinazolingana katika faili.
  • Tafuta mifuatano au ruwaza zinazolingana katika faili za Gzipped.
  • Hesabu idadi ya mfuatano wa mfuatano.
  • Chapisha nambari za mstari zilizo na mfuatano au mchoro.
  • Tafuta kwa mfuatano katika saraka.
  • Fanya utafutaji wa kinyume (yaani Onyesha matokeo ya mifuatano isiyolingana na vigezo vya utafutaji).
  • Puuza unyeti wa herufi unapotafuta mifuatano.

Syntax ya kutumia grep amri ni rahisi sana:

$ grep pattern FILE

Kwa mfano, kutafuta mfuatano wa 'Linux' katika faili, sema, hello.txt huku ukipuuza unyeti wa kesi, endesha amri:

$ grep -i Linux hello.txt

Ili kupata chaguzi zaidi ambazo unaweza kutumia na grep, soma tu nakala yetu inayotoa mifano ya juu zaidi ya amri za grep.

2. sed Amri

maandishi ya udanganyifu katika faili ya maandishi. Sed hutafuta, kuchuja na kubadilisha mifuatano katika faili fulani kwa njia isiyo ya mwingiliano.

Kwa chaguo-msingi, sed amri huchapisha matokeo kwa STDOUT (Standard Out), ikimaanisha kuwa matokeo ya utekelezaji yamechapishwa kwenye terminal badala ya kuhifadhiwa kwenye faili.

Amri ya Sed inaalikwa kama ifuatavyo:

$ sed -OPTIONS command [ file to be edited ]

Kwa mfano, kubadilisha hali zote za 'Unix' na 'Linux', omba amri:

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

Iwapo ungependa kuelekeza matokeo badala ya kuichapisha kwenye terminal, tumia ishara ya uelekezaji upya ( > ) kama inavyoonyeshwa.

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

Matokeo ya amri huhifadhiwa kwa faili ya output.txt badala ya kuchapishwa kwenye skrini.

Kuangalia chaguo zaidi ambazo zinaweza kutumika, kwa mara nyingine tena angalia kurasa za mtu.

$ man sed

3. Amri ya Ack

Ack ni zana ya mstari wa amri ya haraka na inayobebeka iliyoandikwa katika Perl. Ack inachukuliwa kuwa mbadala wa kirafiki wa matumizi ya grep na matokeo husababisha kwa njia inayoonekana kuvutia.

Amri ya Ack hutafuta faili au saraka kwa mistari ambayo ina ulinganifu wa vigezo vya utafutaji. Kisha inaangazia kamba inayolingana katika mistari.
Ack ina uwezo wa kutofautisha faili kulingana na viendelezi vya faili zao, na kwa kiwango fulani, yaliyomo kwenye faili.

Syntax ya amri ya Ack:

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

Kwa mfano, ili kuangalia neno la utafutaji Linux, endesha:

$ ack Linux hello.txt

Zana ya utafutaji ina akili sana na Ikiwa hakuna faili au saraka iliyotolewa na mtumiaji, hutafuta saraka ya sasa na saraka ndogo kwa muundo wa utafutaji.

Katika mfano ulio hapa chini, hakuna faili au saraka iliyotolewa, lakini ack imegundua faili inayopatikana kiotomatiki na kutafuta mchoro unaolingana uliotolewa.

$ ack Linux

Ili kusakinisha ack kwenye mfumo wako endesha amri:

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

4. Amri ya Awk

Awk ni lugha kamili ya uandishi na pia usindikaji wa maandishi na zana ya kudanganya data. Inatafuta faili au programu ambazo zina muundo wa utafutaji. Mfuatano au mchoro unapopatikana, awk huchukua hatua kwenye mechi au mstari na kuchapisha matokeo kwenye STDOUT.

Mchoro wa AWK umefungwa kati ya viunga vilivyopinda huku programu nzima ikiambatanishwa katika nukuu moja.

Hebu tuchukue mfano rahisi zaidi. Hebu tuchukulie kuwa unachapisha tarehe ya mfumo wako kama inavyoonyeshwa:

$ date

Tuseme unataka tu kuchapisha thamani ya kwanza, ambayo ni siku ya juma. Katika hali hiyo, bomba pato ndani ya awk kama inavyoonyeshwa:

$ date | awk '{print $1}'

Ili kuonyesha thamani zinazofuata, zitenganishe kwa kutumia koma kama inavyoonyeshwa:

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

Amri hapo juu itaonyesha siku ya juma na tarehe ya mwezi.

Ili kupata chaguzi zaidi ambazo unaweza kutumia na awk, soma tu safu yetu ya amri ya awk.

5. Silver Searcher

Kitafuta fedha ni jukwaa-msingi na zana ya kutafuta msimbo huria sawa na ack lakini kwa msisitizo wa kasi. Inarahisisha kutafuta kamba maalum ndani ya faili kwa muda mfupi iwezekanavyo:

Sintaksia:

$ ag OPTIONS search_pattern /path/to/file

Kwa mfano, kutafuta mfuatano wa 'Linux' katika faili hello.txt omba amri:

$ ag Linux hello.txt

Kwa chaguzi za ziada, tembelea kurasa za mtu:

$ man ag

6. Ripgrep

Mwishowe, tunayo zana ya mstari wa amri ya ripgrep. Ripgrep ni matumizi ya jukwaa-mtambuka ya kutafuta mifumo ya regex. Ni haraka zaidi kuliko zana zote za utafutaji zilizotajwa hapo awali na hutafuta saraka kwa kujirudia kwa ruwaza zinazolingana. Kwa upande wa kasi na utendaji, hakuna zana nyingine inayoonekana kuwa Ripgrep.

Kwa chaguo-msingi, ripgrep itaruka faili za binary/faili zilizofichwa na saraka. Pia, fahamu kuwa kwa chaguomsingi haitatafuta faili ambazo zimepuuzwa na faili za .gitignore/.ignore/.rgignore.

Ripgrep pia hukuruhusu kutafuta aina maalum za faili. Kwa mfano, ili kupunguza utafutaji wako kwa faili za Javascript endesha:

$ rg -Tsj

Syntax ya kutumia ripgrep ni rahisi sana:

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

Kwa mfano. Ili kutafuta mifano ya kamba 'Linux' katika faili zilizo ndani ya saraka ya sasa, endesha amri:

$ rg Linux

Ili kusakinisha ripgrep kwenye mfumo wako endesha amri zifuatazo:

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

Kwa chaguzi za ziada, tembelea kurasa za mtu:

$ man rg

Hizi ni baadhi ya zana za mstari wa amri zinazotumiwa zaidi kwa ajili ya kutafuta, kuchuja, na kuendesha maandishi katika Linux. Ikiwa una zana zingine ambazo unahisi tumeziacha, tujulishe katika sehemu ya maoni.