6 najboljih CLI alata za pretraživanje podataka u obliku običnog teksta koristeći regularne izraze


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

Bez mnogo daljeg odlaganja, uronimo.

1. Grep komanda

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

Grep se podrazumevano isporučuje sa modernim distribucijama Linuxa i daje vam fleksibilnost da vratite različite rezultate pretrage. Sa grep-om možete izvršiti široku lepezu funkcija kao što su:

  • Potražite nizove ili odgovarajuće uzorke u datoteci.
  • Potražite nizove ili odgovarajuće obrasce u Gzip datotekama.
  • Izbrojite broj podudaranja niza.
  • Ispišite brojeve redova koji sadrže niz ili uzorak.
  • Pretražujte rekurzivno niz u direktorijima.
  • Izvršite obrnutu pretragu (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 je prilično jednostavna:

grep pattern FILE

Na primjer, da biste pretražili niz „Linux“ u datoteci, recimo, hello.txt, a zanemarite osjetljivost na velika i mala slova, pokrenite naredbu:

grep -i Linux hello.txt

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

2. naredba sed

Sed – skraćenica od Stream Editor – je još jedan koristan alat komandne linije za manipulaciju tekstom u tekstualnoj datoteci. Sed pretražuje, filtrira i zamjenjuje nizove u datoj datoteci na neinteraktivan način.

Podrazumevano, naredba sed ispisuje izlaz na STDOUT (Standard Out), što implicira da se rezultat izvršenja ispisuje na terminalu umjesto na se čuva u fajlu.

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

sed -OPTIONS command [ file to be edited ]

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

sed 's/Unix/Linux' hello.txt

Ako želite da preusmjerite 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 se pohranjuje u datoteku output.txt umjesto da se ispisuje na ekranu.

Da biste provjerili više opcija koje se mogu koristiti, još jednom pogledajte man stranice.

man sed

3. Naredba Ack

Ack je brz i prenosiv alat komandne linije napisan u Perlu. Ack se smatra prijateljskom zamjenom za grep uslužni program i rezultati rezultiraju na vizualno privlačan način.

Komanda Ack pretražuje datoteku ili direktorij u potrazi za redovima koji sadrže podudaranje za kriterije pretraživanja. Zatim ističe odgovarajući niz u redovima.
Ack ima kapacitet da razlikuje fajlove na osnovu njihovih ekstenzija fajlova, i do određene mere, sadržaja u fajlovima.

Sintaksa naredbe Ack:

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

Na primjer, da provjerite termin za pretraživanje Linux, pokrenite:

ack Linux hello.txt

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

U primjeru ispod, nije navedena datoteka ili direktorij, ali ack je automatski otkrio dostupnu datoteku i tražio odgovarajući uzorak.

ack Linux

Da instalirate ack na vašem sistemu, pokrenite naredbu:

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

4. Awk komanda

Awk je potpuno razvijen jezik za skriptiranje, a također i alat za obradu teksta i manipulaciju podacima. Pretražuje datoteke ili programe koji sadrže obrazac pretraživanja. Kada se pronađe niz ili uzorak, awk poduzima akciju na podudaranju ili liniji i ispisuje rezultate na STDOUT.

Obrazac AWK je zatvoren između vitičastih zagrada, dok je cijeli program zatvoren u jednostrukim navodnicima.

Uzmimo najjednostavniji primjer. Pretpostavimo da ispisujete datum vašeg sistema kako je prikazano:

date

Pretpostavimo da želite da odštampate samo prvu vrednost, a to je dan u nedelji. U tom slučaju, prenesite izlaz u awk kao što je prikazano:

date | awk '{print $1}'

Da biste prikazali sljedeće vrijednosti, odvojite ih zarezom kao što je prikazano:

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

Gornja komanda će prikazati dan u sedmici i datum u mjesecu.

Da dobijete više opcija koje možete koristiti sa awk, jednostavno pročitajte našu seriju komandi awk.

5. Silver Searcher

Srebrni pretraživač je alat za pretraživanje na više platformi i otvorenog koda sličan acku, ali s naglaskom na brzinu. 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, da biste tražili niz „Linux“ u datoteci hello.txt pozovite naredbu:

ag Linux hello.txt

Za dodatne opcije posjetite man stranice:

man ag

6. Ripgrep

Na kraju, imamo alat komandne linije ripgrep. Ripgrep je uslužni program za više platformi za pretraživanje obrazaca regularnih izraza. Mnogo je brži od svih ranije spomenutih alata za pretraživanje i rekurzivno pretražuje direktorije za podudaranje uzoraka. U smislu brzine i performansi, nijedan drugi alat se ne ističe kao Ripgrep.

Po defaultu, 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 ignoriraju datoteke .gitignore/.ignore/.rgignore.

Ripgrep vam također omogućava da tražite određene tipove datoteka. Na primjer, da ograničite pretragu na Javascript fajlove, pokrenite:

rg -Tsj

Sintaksa za korištenje ripgrep-a je prilično jednostavna:

rg [OPTIONS] PATTERN [PATH...]

Na primjer. Da biste tražili instance niza ‘Linux’ u datotekama koje se nalaze unutar trenutnog direktorija, pokrenite naredbu:

rg Linux

Da instalirate ripgrep na vaš sistem, pokrenite sljedeće komande:

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 man stranice:

man rg

Ovo su neki od najčešće korištenih alata komandne linije za pretraživanje, filtriranje i manipulaciju tekstom u Linuxu. Ako imate druge alate za koje smatrate da smo ih izostavili, obavijestite nas u odjeljku za komentare.