6 najboljih CLI alata za pretraživanje podataka običnog teksta pomoću regularnih izraza


Ovaj vodič vodi u obilazak nekih od najboljih alata naredbenog retka koji se koriste za pretraživanje odgovarajućih nizova ili uzoraka u tekstualnim datotekama. Ovi se alati obično koriste uz regularne izraze – skraćeno kao REGEX – koji su jedinstveni nizovi za opisivanje uzorka pretraživanja.

Bez puno odlaganja, zaronimo u to.

1. Grep naredba

Na prvom mjestu je uslužni alat grep – akronim za Global Regular Expression Print, moćan je alat naredbenog retka koji je koristan kada tražite određeni niz ili uzorak u datoteci .

Grep se prema zadanim postavkama isporučuje s modernim distribucijama Linuxa i daje vam fleksibilnost vraćanja različitih rezultata pretraživanja. Pomoću grep-a možete izvršiti širok niz funkcija kao što su:

  • Traži nizove ili odgovarajuće uzorke u datoteci.
  • Potražite nizove ili odgovarajuće uzorke u Gzipanim datotekama.
  • Izbrojite broj podudaranja niza.
  • Ispišite brojeve redaka koji sadrže niz ili uzorak.
  • Traži rekurzivno niz u imenicima.
  • Izvršite obrnuto pretraživanje (tj. prikažite rezultate nizova koji ne odgovaraju kriterijima pretraživanja).
  • Zanemarite osjetljivost na velika i mala slova kada tražite nizove.

Sintaksa za korištenje naredbe grep prilično je jednostavna:

grep pattern FILE

Na primjer, za traženje niza 'Linux' u datoteci, recimo, hello.txt ignorirajući osjetljivost na velika i mala slova, pokrenite naredbu:

grep -i Linux hello.txt

Da biste dobili više opcija koje možete koristiti s grep, jednostavno pročitajte naš članak koji daje primjere naprednijih primjera grep naredbi.

2. Naredba sed

Sed – kratica za Stream Editor – još je jedan koristan alat naredbenog retka za manipuliranje tekstom u tekstualnoj datoteci. Sed pretražuje, filtrira i zamjenjuje nizove u datoteci na neinteraktivan način.

Prema zadanim postavkama, naredba sed ispisuje izlaz u STDOUT (Standardni izlaz), što znači da se rezultat izvršenja ispisuje na terminalu umjesto sprema se u datoteku.

Sed naredba se poziva na sljedeći način:

sed -OPTIONS command [ file to be edited ]

Na primjer, da biste zamijenili sve instance ‘Unix’ s ‘Linux’, pozovite naredbu:

sed 's/Unix/Linux' hello.txt

Ako želite preusmjeriti izlaz umjesto da ga ispisujete na terminalu, koristite znak za preusmjeravanje ( > ) kao što je prikazano.

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

Izlaz naredbe sprema se u datoteku output.txt umjesto da se ispisuje na ekranu.

Kako biste provjerili više opcija koje se mogu koristiti, još jednom provjerite stranice priručnika.

man sed

3. Ack naredba

Ack je brz i prenosiv alat naredbenog retka napisan u Perlu. Ack smatra se prijateljskom zamjenom za grep uslužni program i daje rezultate na vizualno privlačan način.

Naredba Ack pretražuje datoteku ili direktorij za retke koji sadrže podudaranje za kriterije pretraživanja. Zatim ističe odgovarajući niz u redovima.
Ack ima sposobnost razlikovanja datoteka na temelju njihovih datotečnih ekstenzija i, u određenoj mjeri, sadržaja u datotekama.

Sintaksa naredbe Ack:

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

Na primjer, da provjerite traženi pojam Linux, pokrenite:

ack Linux hello.txt

Alat za pretraživanje prilično je inteligentan i ako korisnik ne pruži datoteku ili direktorij, pretražuje trenutni direktorij i poddirektorije za obrazac pretraživanja.

U donjem primjeru nije navedena nikakva datoteka ili direktorij, ali ack je automatski otkrio dostupnu datoteku i pretražio ponuđeni odgovarajući uzorak.

ack Linux

Da biste instalirali ack na svoj sustav, pokrenite naredbu:

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

4. Awk naredba

Awk je potpuni skriptni jezik, a također i alat za obradu teksta i podataka. Pretražuje datoteke ili programe koji sadrže obrazac pretraživanja. Kada se niz ili uzorak pronađe, awk poduzima radnju na podudaranju ili liniji i ispisuje rezultate na STDOUT.

Uzorak AWK nalazi se u vitičastim zagradama, dok je cijeli program u jednostrukim navodnicima.

Uzmimo najjednostavniji primjer. Pretpostavimo da ispisujete datum svog sustava kao što je prikazano:

date

Pretpostavimo da želite ispisati samo prvu vrijednost, a to je dan u tjednu. U tom slučaju, usmjerite izlaz u awk kao što je prikazano:

date | awk '{print $1}'

Za prikaz sljedećih vrijednosti, odvojite ih zarezom kao što je prikazano:

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

Gornja naredba prikazat će dan u tjednu i datum u mjesecu.

Da biste dobili više opcija koje možete koristiti s awk, jednostavno pročitajte našu seriju awk naredbi.

5. Tražilica srebra

Silver searcher alat je za pretraživanje više platformi i otvorenog koda sličan ack, ali s naglaskom na brzini. Olakšava vam traženje određenog niza unutar datoteka u najkraćem mogućem vremenu:

Sintaksa:

ag OPTIONS search_pattern /path/to/file

Na primjer, za traženje niza ‘Linux’ u datoteci hello.txt pozovite naredbu:

ag Linux hello.txt

Za dodatne opcije posjetite stranice priručnika:

man ag

6. Ripgrep

Na kraju, imamo alat za naredbeni redak ripgrep. Ripgrep je uslužni program za više platformi za pretraživanje uzoraka regularnih izraza. Puno je brži od svih ranije spomenutih alata za pretraživanje i rekurzivno pretražuje direktorije tražeći podudarne uzorke. U pogledu brzine i performansi, nijedan drugi alat se ne ističe kao Ripgrep.

Prema zadanim postavkama, ripgrep će preskočiti binarne datoteke/skrivene datoteke i direktorije. Također, imajte na umu da prema zadanim postavkama neće tražiti datoteke koje datoteke .gitignore/.ignore/.rgignore zanemaruju.

Ripgrep također vam omogućuje pretraživanje određenih vrsta datoteka. Na primjer, da biste ograničili pretraživanje na Javascript datoteke, pokrenite:

rg -Tsj

Sintaksa za korištenje ripgrepa je prilično jednostavna:

rg [OPTIONS] PATTERN [PATH...]

Na primjer. Za traženje instanci niza ‘Linux’ u datotekama koje se nalaze unutar trenutnog direktorija, pokrenite naredbu:

rg Linux

Da biste instalirali ripgrep na svoj sustav, pokrenite sljedeće naredbe:

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]

Za dodatne opcije posjetite stranice priručnika:

man rg

Ovo su neki od najčešće korištenih alata naredbenog retka za pretraživanje, filtriranje i manipuliranje tekstom u Linuxu. Ako imate druge alate za koje mislite da smo ih izostavili, javite nam u odjeljku za komentare.