Naredba Pipe, Grep i Sort u Linuxu/Unixu s primjerima

โšก Pametni saลพetak

Naredbe pipe, grep i sort u Linuxu i Unixu ulanฤavaju i filtriraju tekst: pipe prenosi izlaz jedne naredbe u sljedeฤ‡u, grep traลพi uzorke, a sort slaลพe retke, dok filteri transformiraju podatke izmeฤ‘u njih.

  • ๐Ÿ”— Cijev: Simbol okomite crte | prosljeฤ‘uje izlaz jedne naredbe kao ulaz sljedeฤ‡oj.
  • ๐Ÿ“„ Straniฤno slanje: Naredba cat poslana na less, pg ili more prikazuje dugu datoteku jedan po jedan ekran.
  • ๐Ÿ” grep: Naredba grep pretraลพuje datoteku za retke koji odgovaraju nizu ili uzorku.
  • ๐ŸŽš๏ธ grep opcije: Zastavice poput -v, -c, -n, -i i -l invertiraju, prebrojavaju, broje, ignoriraju velika i mala slova i popisuju datoteke.
  • ๐Ÿ”ค vrsta: Naredba sort sortira retke datoteke, s opcijama -r, -n i -f za obrnuto, numeriฤko i razlikovanje velikih i malih slova.
  • ๐Ÿงช Filtri: Naredbe za filtriranje kao ลกto su grep, sort, awk, sed i wc obraฤ‘uju ulazne podatke i proizvode izlaz.
  • ๐Ÿค– Pomoฤ‡ umjetne inteligencije: AI asistenti i GitHub Copilot mogu izgraditi i objasniti pipe, grep i sort cjevovode.

Naredbe pipe, grep i sort u Linuxu i Unixu s primjerima

Cijevi, grep i sort su meฤ‘u najฤeลกฤ‡e koriลกtenim alatima na Linux naredbenog retka, jer vam omoguฤ‡uju povezivanje malih naredbi u jedan moฤ‡an tijek rada. Ova stranica objaลกnjava svaku od njih s raฤ‘enim primjerima, a zatim pokazuje kako ih filteri povezuju.

ล to je cijev u Linuxu?

Pipe je naredba u Linuxu koja vam omoguฤ‡uje koriลกtenje dvije ili viลกe naredbi tako da izlaz jedne naredbe sluลพi kao ulaz za sljedeฤ‡u. Ukratko, izlaz svakog procesa izravno se unosi kao ulaz u sljedeฤ‡i, poput cjevovoda. Simbol '|' oznaฤava cijev.

Cijevi vam pomaลพu da istovremeno spojite dvije ili viลกe naredbi i pokrenete ih uzastopno. Moลพete koristiti moฤ‡ne naredbe koje izvrลกavaju sloลพene zadatke u tren oka.

Shvatimo ovo na primjeru.

Kada koristite naredbu 'cat' za pregled datoteke koja se proteลพe na viลกe stranica, upit brzo skaฤe na posljednju stranicu datoteke i ne vidite sadrลพaj u sredini.

Kako biste to izbjegli, moลพete proslijediti izlaz naredbe 'cat' na 'less', ลกto vam prikazuje samo jednu duljinu pomicanja sadrลพaja odjednom.

cat filename | less

Ilustracija bi to razjasnila. Dijagram ispod prikazuje kako cijev prenosi izlaz jedne naredbe u sljedeฤ‡u.

Dijagram Linuxove cijevi koja prosljeฤ‘uje izlaz jedne naredbe kao ulaz sljedeฤ‡oj

naredbe 'pg' i 'more'

Umjesto 'less', moลพete koristiti i naredbu pg ili more:

cat Filename | pg

or

cat Filename | more

Zatim moลพete pregledati datoteku u probavljivim dijelovima i pomicati se prema dolje jednostavnim pritiskom na tipku Enter. Snimka zaslona u nastavku prikazuje datoteku podijeljenu u stranice naredbom more.

cat se preusmjerava na naredbu more, straniฤeฤ‡i dugu datoteku, ekran po ekran

Naredba 'grep'

Pretpostavimo da ลพelite pretraลพiti odreฤ‘ene informacije, poput poลกtanskog broja, u tekstualnoj datoteci.

Sadrลพaj moลพete ruฤno pregledati sami tracinformacije. Bolja opcija je koristiti grep naredba. Skenira dokument u potrazi za ลพeljenim informacijama i prikazuje rezultat u ลพeljenom formatu.

Sintaksa:

grep search_string

Pogledajmo to u akciji. Snimka zaslona u nastavku prikazuje rezultat pretraลพivanja.

grep naredba pretraลพuje datoteku uzorka za nizove znakova Apple i Eat

Ovdje je naredba grep pretraลพila datoteku 'sample' za nizove 'Apple' i 'Eat'. Sljedeฤ‡e opcije mogu se koristiti s ovom naredbom.

opcija funkcija
-v Prikazuje sve retke koji ne odgovaraju traลพenom nizu
-c Prikazuje samo broj odgovarajuฤ‡ih redaka
-n Prikazuje odgovarajuฤ‡u liniju i njen broj
-i Podudara se i s velikim i s malim slovima
-l Prikazuje samo naziv datoteke s nizom

Pokuลกajmo s opcijom '-i' na istoj datoteci koja je gore koriลกtena. Snimka zaslona u nastavku prikazuje rezultat bez razlikovanja velikih i malih slova.

grep -i izvodi pretragu bez razlikovanja velikih i malih slova za slovo a

Koriลกtenjem opcije '-i', grep je filtrirao niz 'a' (neosjetljivo na velika i mala slova) iz svih redaka.

Naredba 'sort'

Ova naredba pomaลพe u sortiranju sadrลพaja datoteke po abecednom redu.

Sintaksa ove naredbe je:

sort Filename

Razmotrimo sadrลพaj datoteke, prikazane s maฤkom ispod.

Naredba cat prikazuje nesortirani sadrลพaj datoteke abc

Pokretanjem naredbe sort te retke se sortiraju abecednim redom, kao ลกto je prikazano dolje.

Naredba sortiranja koja slaลพe sadrลพaj datoteke abc abecednim redom

Postoje i proลกirenja za ovu naredbu, a navedena su u nastavku.

opcija funkcija
-r Reversesortiranje
-n Razvrstava brojฤano
-f Sortiranje bez razlikovanja velikih i malih slova

Primjer ispod prikazuje obrnuto sortiranje sadrลพaja u datoteci 'abc'.

sort -r naredba obrnuto sortira sadrลพaj datoteke abc

ล to je filtar?

Linux ima mnogo naredbi za filtriranje kao ลกto su awk, grep, sed, spell i wc. Filter uzima ulaz iz jedne naredbe, obavlja odreฤ‘enu obradu i daje izlaz.

Kada proslijedite dvije naredbe putem cjevovoda, 'filtrirani' izlaz prve naredbe daje se sljedeฤ‡oj. Dijagram u nastavku ilustrira kako se filtar uklapa u cjevovod.

Dijagram Linux filtera koji prima ulazne podatke, obraฤ‘uje ih i proizvodi izlaz

Razumijemo ovo uz pomoฤ‡ primjera. Imamo sljedeฤ‡u datoteku 'primjer', prikazanu s oznakom maฤka ispod.

Naredba cat prikazuje sadrลพaj uzorka datoteke prije filtriranja

ลฝelimo oznaฤiti samo retke koji ne sadrลพe znak 'a', ali rezultat bi trebao biti u obrnutom redoslijedu. Za to se moลพe koristiti sljedeฤ‡a sintaksa:

cat sample | grep -v a | sort -r

Pogledajmo rezultat, prikazan na snimci zaslona ispod.

cat je proลกao kroz grep -v i sort -r, stvarajuฤ‡i obrnuto poredane retke bez slova a

Pitanja i odgovori

Cijevi (|) ลกalju izlaz jedne naredbe izravno u drugu naredbu, povezujuฤ‡i ih zajedno. Preusmjeravanje (> i <) umjesto toga povezuje naredbu s datotekom, zapisujuฤ‡i izlaz u datoteku ili ฤitajuฤ‡i ulaz iz jedne. Cijevi povezuju naredbe; preusmjeravanje povezuje naredbe i datoteke.

grep je kratica za Global Regular Expression Print (Globalni Ispis Regularnog Izraza). Skenira datoteku ili unos redak po redak i ispisuje svaki redak koji odgovara uzorku koji mu zadate. Naziv dolazi od stare naredbe g/re/p u editoru ed-a, koja je izvodila isto pretraลพivanje.

Naredba sort ima opciju -u koja sortira i uklanja duplikate redaka u jednom koraku: sort -u file. Takoฤ‘er moลพete proslijediti sort u uniq, kao u sort file | uniq, buduฤ‡i da uniq uklanja samo duplikate koji su veฤ‡ susjedni.

Zavrลกite cjevovod preusmjeravanjem: cat sample | grep -va | sort -r > result.txt zapisuje konaฤni izlaz u datoteku. Da biste vidjeli izlaz na zaslonu i istovremeno ga spremili, umjesto toga ga preusmjerite u naredbu tee.

grep pretraลพuje unutar datoteka retke koji odgovaraju uzorku teksta. Naredba find locira same datoteke i direktorije prema imenu, veliฤini, vrsti ili datumu. Ukratko, grep pregledava sadrลพaj datoteke, dok find traลพi datoteke u stablu direktorija.

Naredba tee ฤita iz cjevovoda i zapisuje podatke na zaslon i u jednu ili viลกe datoteka odjednom, na primjer grep error log | tee errors.txt. Omoguฤ‡uje vam spremanje meฤ‘uizlaza bez prekidanja cjevovoda.

AI asistenti mogu predloลพiti ispravan lanac naredbi iz zahtjeva na obiฤnom engleskom jeziku, objasniti nepoznate grep ili sort oznake i uoฤiti pogreลกke u cjevovodu. Alati za strojno uฤenje takoฤ‘er skeniraju izlaz zapisnika kako bi oznaฤili anomalije koje bi ruฤno filtriranje propustilo.

Da. GitHub kopilot moลพe generirati cjevovode koji kombiniraju cat, grep i sort iz kratkog komentara koji opisuje ลกto vam je potrebno i dovrลกavati naredbe dok tipkate. RevPogledajte sve predloลพene cjevovode u odnosu na uzorke podataka, posebno opcije koje mijenjaju redoslijed ili briลกu retke.

Saลพmite ovu objavu uz: