6 Awọn irin-iṣẹ CLI ti o dara julọ lati Ṣawari Awọn data Text-Text Lilo Awọn ifihan deede


Itọsọna yii gba irin-ajo ti diẹ ninu awọn irinṣẹ laini aṣẹ to dara julọ ti a lo fun wiwa awọn okun ti o baamu tabi awọn ilana ninu awọn faili ọrọ. Awọn irinṣẹ wọnyi ni a maa n lo lẹgbẹẹ awọn ifihan deede - kuru bi REGEX - eyiti o jẹ awọn okun alailẹgbẹ fun apejuwe apẹẹrẹ wiwa kan.

Laisi pupọ siwaju si, jẹ ki a bọ sinu.

1. Grep Commandfin

Wiwa ni ipo akọkọ jẹ ohun elo iwulo grep - jẹ adape fun Sisọye Ifọrọhan deede ti Agbaye, jẹ ohun elo laini aṣẹ ti o lagbara ti o wa ni ọwọ nigbati o n wa okun kan pato tabi apẹẹrẹ ni faili kan.

Awọn ọkọ oju omi Grep pẹlu awọn pinpin Lainos igbalode nipasẹ aiyipada ati fun ọ ni irọrun lati pada ọpọlọpọ awọn abajade wiwa. Pẹlu grep, o le ṣe titobi pupọ ti sisẹ bii:

  • Wa fun awọn okun tabi awọn ilana ibamu ni faili kan.
  • Wa fun awọn okun tabi awọn ilana ibamu ni awọn faili Gzipped.
  • Ka iye awọn ere-kere okun.
  • Tẹ awọn nọmba laini ti o ni okun tabi apẹẹrẹ inu rẹ ninu.
  • Wa sẹhin-kiri fun okun ninu awọn ilana itọsọna.
  • Ṣe wiwa yiyipada (bii. Awọn abajade Ifihan ti awọn okun ti ko baamu awọn abawọn wiwa).
  • Foju ifamọ ọran nigbati o n wa awọn okun.

Ilana fun lilo aṣẹ grep jẹ ohun rọrun:

$ grep pattern FILE

Fun apẹẹrẹ, lati wa okun ‘Linux’ ninu faili kan, sọ, hello.txt lakoko ti o foju kọye ifamọ ọran, ṣiṣe aṣẹ naa:

$ grep -i Linux hello.txt

Lati gba awọn aṣayan diẹ sii ti o le lo pẹlu grep, jiroro ka nkan wa ti awọn apẹẹrẹ awọn apẹẹrẹ aṣẹ grep ti o ni ilọsiwaju siwaju sii.

2. sed Commandfin

ọrọ ifọwọyi ni faili ọrọ kan. Awọn wiwa Sed, awọn awoṣe ati rọpo awọn okun ni faili ti a fun ni ọna ti kii ṣe ibaraenisọrọ.

Nipa aiyipada, aṣẹ sed tẹjade iṣelọpọ si STDOUT (Standard Out), ni itumọ pe abajade ti ipaniyan naa ni a tẹ lori ebute dipo ti fipamọ ni faili kan.

A pe aṣẹ Sed gẹgẹbi atẹle:

$ sed -OPTIONS command [ file to be edited ]

Fun apẹẹrẹ, lati rọpo gbogbo awọn iṣẹlẹ ti 'Unix' pẹlu 'Linux', kepe aṣẹ:

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

Ti o ba fẹ ṣe atunṣe iṣẹjade dipo titẹ sita lori ebute naa, lo ami itọsọna redire (>) bi o ti han.

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

Ijade ti aṣẹ ti wa ni fipamọ si faili output.txt dipo ti titẹ lori iboju.

Lati ṣayẹwo awọn aṣayan diẹ sii ti o le lo, lekan si ṣayẹwo awọn oju-iwe eniyan naa.

$ man sed

3. Ack Commandfin

Ack jẹ iyara ati laini irinṣẹ-laini aṣẹ ti a kọ sinu Perl. Ack ṣe akiyesi rirọpo ọrẹ fun iwulo ọra ati awọn abajade awọn abajade ni ọna ifunni oju.

Ack Ack wa faili tabi itọsọna fun awọn ila ti o ni ibaramu fun awọn ilana iṣawari. Lẹhinna o ṣe ifojusi okun ti o baamu ninu awọn ila naa.
Ack ni agbara lati ṣe iyatọ awọn faili ti o da lori awọn amugbooro faili wọn, ati si iye kan, akoonu inu awọn faili naa.

Sintasi aṣẹ Ack:

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

Fun apẹẹrẹ, lati ṣayẹwo fun ọrọ wiwa Linux, ṣiṣe:

$ ack Linux hello.txt

Ọpa wiwa jẹ oye pupọ ati pe Ti ko ba si faili tabi itọsọna kan nipasẹ olumulo, o wa itọsọna ti isiyi ati awọn abẹ-iwe fun apẹrẹ wiwa.

Ninu apẹẹrẹ ti o wa ni isalẹ, ko si faili tabi itọsọna ti a ti pese, ṣugbọn ack ti ṣe awari faili ti o wa laifọwọyi ati wiwa fun apẹrẹ ibaramu ti a pese.

$ ack Linux

Lati fi akọọlẹ sori ẹrọ rẹ ṣiṣe aṣẹ naa:

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

4. Awk .fin

Awk jẹ ede afọwọkọ ti o ni kikun ati tun ṣiṣe ọrọ ati ohun elo ifọwọyi data. O wa awọn faili tabi awọn eto ti o ni apẹẹrẹ wiwa. Nigbati a ba rii okun tabi apẹẹrẹ, awk ṣe igbese lori ibaramu tabi laini ati tẹ awọn esi lori STDOUT.

Apeere AWK ti wa ni pipade laarin awọn àmúró diduro lakoko ti gbogbo eto naa wa ni pipade ni awọn agbasọ kan.

Jẹ ki a mu apẹẹrẹ ti o rọrun julọ. Jẹ ki a ro pe o n tẹ ọjọ ti eto rẹ bi a ṣe han:

$ date

Ṣebi o nikan fẹ lati tẹjade iye akọkọ, eyiti o jẹ ọjọ ti ọsẹ. Ni ọran naa, paipu iṣẹ inu awk bi o ti han:

$ date | awk '{print $1}'

Lati ṣe afihan awọn iye atẹle, ya wọn nipa lilo aami idẹ bi o ti han:

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

Aṣẹ ti o wa loke yoo han ọjọ ọsẹ ati ọjọ ti oṣu naa.

Lati gba awọn aṣayan diẹ sii ti o le lo pẹlu awk, jiroro ka jara awk aṣẹ wa.

5. Oluwadii Fadaka

Oluwadi fadaka jẹ pẹpẹ agbelebu ati ohun elo wiwa koodu opensource iru si ack ṣugbọn pẹlu itọkasi lori iyara. O jẹ ki o rọrun fun ọ lati wa okun kan pato laarin awọn faili ni akoko to kuru ju ti o ṣeeṣe:

Ilana:

$ ag OPTIONS search_pattern /path/to/file

Fun apẹẹrẹ, lati wa okun ‘Linux’ ninu faili kan hello.txt pe aṣẹ naa:

$ ag Linux hello.txt

Fun awọn aṣayan afikun, ṣabẹwo si awọn oju-iwe eniyan naa:

$ man ag

6. Ripgrep

Ni ikẹhin, a ni irinṣẹ laini aṣẹ-aṣẹ ripgrep. Ripgrep jẹ iwulo agbelebu-pẹpẹ fun wiwa awọn ilana regex. O yara pupọ ju gbogbo awọn irinṣẹ wiwa ti a mẹnuba tẹlẹ lọ ati ṣe awari awọn itọnisọna fun awọn ilana ibamu. Ni awọn ofin ti iyara ati iṣẹ, ko si ọpa miiran ti o duro ti Ripgrep.

Nipa aiyipada, ripgrep yoo foju awọn faili alakomeji/awọn faili pamọ ati awọn ilana-ilana. Pẹlupẹlu, ni imọran pe nipa aiyipada kii yoo wa fun awọn faili ti a foju nipasẹ awọn faili .gitignore/.ignore/.rgignore.

Ripgrep tun fun ọ laaye lati wa awọn iru faili kan pato. Fun apẹẹrẹ, lati ṣe idinwo wiwa rẹ si awọn faili Javascript ṣiṣe:

$ rg -Tsj

Ilana fun lilo ripgrep jẹ ohun rọrun:

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

Fun apere. Lati wa awọn iṣẹlẹ ti okun 'Linux' ninu awọn faili ti o wa ninu itọsọna lọwọlọwọ, ṣiṣe aṣẹ naa:

$ rg Linux

Lati fi sori ẹrọ ripgrep lori eto rẹ ṣiṣe awọn ofin wọnyi:

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

Fun awọn aṣayan afikun, ṣabẹwo si awọn oju-iwe eniyan naa:

$ man rg

Iwọnyi jẹ diẹ ninu awọn irinṣẹ laini aṣẹ ti o ni ibigbogbo fun wiwa, sisẹ, ati ifọwọyi ọrọ ni Lainos. Ti o ba ni awọn irinṣẹ miiran ti o lero pe a ti fi silẹ, ma jẹ ki a mọ ni apakan asọye.