Naučite Linux

Linux awk naredba s 10 primjera

Linux awk naredba s 10 primjera

Računalni sustavi uvijek su se koristili za analizu vrijednih podataka pohranjenih u jednostavnim tekstualnim datotekama. Zauzvrat, samim računalnim sustavima upravlja se putem datoteka dnevnika. Ono što je potencijalno uobičajeno u ove dvije situacije jest da sadrže veliku količinu podataka, što često treba usmjeriti prije nego što ih zapravo pročitate; inače je samo zbunjujuće.

Na primjer, ako čitate neke podatke poredane u tabličnom obliku, želite neke stupce, a ne druge.

Ovaj je zahtjev bio strašan čak i u prošlost, te stoga GNU projekt ima nevjerojatan alat koji pomaže korisnicima da filtriraju i izdvajaju podatke za bolje iskustvo. Taj je alat AWK.

Povijest

AWK je zapravo programski jezik koji je posvećen obradi teksta. Koristi se za izdvajanje podataka u određenim obrascima. Razvili su ga 1970-ih Bell Labs, Alfred Aho, Peter Weinberger i Brian Kernighan (inicijali njihovih prezimena rodili su ime). Razvoj awka tu nije stao. Nova verzija predstavljena je 1985. godine, koja je unijela nove promjene u naredbu awk, uključujući mogućnost obrade više ulaznih tokova, izračunatih regularnih izraza, korisnički definiranih funkcija i još mnogo toga! Ukratko, ažuriranje ga je učinilo snažnijim programskim jezikom.

Awk ima drugačiju primjenu. Kako bi osigurao pravilnu provedbu koja nudi standardni pristup, Paul Rubin napisao je gawk 1986. godine. Dobro je surađivao s novijim awkom.

Osim toga, 1989. godine izdanje System V dodane su nove značajke. Programeri su također poboljšali njegove tamne kutove, čineći ga programerima i korisnicima boljim. Najnovija promjena dogodila se 1997. godine kada je awk vidio pristup mreži - pružajući korisnicima mogućnost daljinskog rješavanja problema.

Najnovije prepravljeno 2011. godine kada je John Haque prepisao gawk unutarnje dijelove.

Stvari koje možete raditi s AWK-om

Do sada bi trebalo biti donekle jasno za što je sposoban AWK. To je općeniti skriptni jezik koji vam omogućuje obradu teksta. Napredni korisnici također ga mogu koristiti za analizu i izvještavanje.

AWK nije sličan ostalim programskim jezicima jer se temelji na podacima, a ne kao proceduralni programski jezik. To znači da ga možete učinkovito koristiti za izvršavanje radnji protiv unosa teksta. Ukratko, možete ga koristiti za pretvaranje podataka, unos i slanje kao standardni izlaz.

Ukratko, AWK možete koristiti za obavljanje jednostavnih operacija, poput razdvajanja svakog ulaznog retka na polja, skeniranja datoteke red po red, izvođenja radnji na linijama podudaranja itd! Naredba awk također je korisna za izvješća oblikovana u proceduri i transformira datoteke podataka. Štoviše, također dobivate pristup programskim konstrukcijama kao što su uvjetne & petlje, niz & aritmetičke operacije i izlazne linije oblikovanja.

Kako awk djeluje

U ovom ćemo odjeljku naučiti kako funkcionira awk. Važno je naučiti da awk ima različite implementacije. Kako bismo bili sigurni da smo na istoj stranici, razgovarat ćemo i upotrijebiti GNU implementaciju - koja je u narodu poznata kao gawk. U većini slučajeva, gawk je simbolično povezan s tumačem awk.

Da bismo dobro razumjeli, prvo moramo razumjeti Zapise i polja.

Dobro je poznato da awk može obrađivati ​​tekstualne tokove i datoteke podataka. Za obradu podataka, ulaz je podijeljen na polja i zapise. Kako se osigura da awk ne prevlada, jedan zapis se obrađuje u bilo kojem trenutku dok se ne postigne kraj unosa. Nadalje, zapisi su dalje podijeljeni u jednostavne odjeljke pomoću separatora zapisa pomoću znakova. Također, svaki je zapis odvojen znakovima novog reda. To znači da se svaki redak može nazvati zapisom.

Možete odabrati postavljanje novog separatora zapisa pomoću RS varijable.

Sljedeći dolazi separator polja. Kao i obično, svaki zapis ima polja, a odvajaju se pomoću separatora polja. Razdjelnik polja može biti razmak, kartice, znakovi novog retka i razmak. Također, na svako se polje navodi simbol $, dok broj polja počinje s 1. To znači da se prvo polje može označiti kao $ 1, dok se drugo polje označava kao $ 2. Na taj se način n-to polje može označiti kao $ nf.

Program awk

Drugi aspekt awka je awk program. Ako želite raditi s awkom, trebate napisati program koji naredbi omogućuje izvršavanje ili obradu teksta. Program awk nudi puno funkcionalnosti koristeći pravila i korisnički definirane funkcije. Pravila rade s parom radnji ili jednim uzorkom, a pravila se odvajaju pomoću zareza ili novog reda.

U slučaju da se pitate, awk program će izgledati dolje.

uzorak akcija uzorak akcija .. 

Ukratko, awk program djeluje poklapanjem zapisa na temelju uzoraka. Ako je obrazac pronađen u zapisu, tada će ga obraditi. Ako nije, tada se podudara cijeli zapis kako bi se osiguralo da se nešto podudara na temelju pravila.

awk primjeri naredbi

Sad kad dobro razumijemo naredbu awk i kako ona funkcionira, vrijeme je da provjerimo neke primjere naredbe awk.

Ako nikada prije niste koristili awk, možda biste željeli znati da se awk može koristiti s opcijama kao u nastavku:

awk programska datoteka

Opcije koje možete koristiti s awk uključuju sljedeće:

Primjer 1: Pročitajte AWK skripte

Jedan od najčešćih načina upotrebe awka je čitanje skripti. Kao korisnik Linuxa, možete stvoriti awk skriptu pomoću jednostrukih navodnika.

Da biste to učinili, u terminal morate upisati sljedeću naredbu.

$ awk 'print "Dobro došli u Hello, World - AWK tutorial"'

U gornjem primjeru, ono što upišete, vratit će se na sam zaslon. Izvršenje naredbe nastavit će se dok je ne završite pritiskom na CTRL + D.

Primjer 2: Korištenje više naredbi

Sljedeća uobičajena upotreba awka je upotreba više naredbi. Kao korisnik, možda ćete htjeti kombinirati dvije awk naredbe u jednu da biste dobili željeni rezultat. U ovom ćemo primjeru iznijeti niz, a zatim ćemo zamijeniti drugu riječ u nizu novim unosom.

$ echo "Hello World" | awk '$ 2 = "Svemir; ispiši $ 0"'

U gornjem primjeru prvo smo odjeknuli s terminalom "Zdravo, svijete". Dalje, spojili smo još jednu awk naredbu gdje smo drugu riječ zamijenili Universeom - a zatim napokon izbacili niz koji je Hello Universe.

Primjer 3: Korištenje varijable

Varijable omogućuju pohranu podataka i pristup njima. Ako ste već koristili programske jezike, sigurno znate za njih. U slučaju awk, koristite ga za obradu tekstualnih datoteka. Korištenjem varijabli možete pristupiti određenim poljima podataka unutar datoteke baš kao u nastavku.

U tu svrhu stvorili smo novu tekstualnu datoteku, mynewfile, u koju smo unijeli nekoliko slučajnih, ali lijepih linija.

Dalje, trebate pokrenuti naredbu, kao što je prikazano u nastavku.

awk 'print $ 1' mynewfile

Kao što vidite, iz datoteke izlazi ona određena varijabla koja pokazuje to polje. Također, trebali biste vidjeti pogrešku koju sam napravio.

Primjer 4: AWK predobrada

Pomoću naredbe awk možete dodati predobradu. Da biste to učinili, morate upotrijebiti ključnu riječ BEGIN.

Ako pažljivo čitate, gore smo stvorili novu datoteku. Pokušajmo upotrijebiti awk pretprocesiranje za prezentaciju sadržaja datoteke.

Naredba za to je kao u nastavku.

awk 'awk BEGIN print "Sadržaj datoteke:"> print $ 0', mynewfile

Gornji primjer snimke zaslona nije točan. Upotrijebio sam "Begin" umjesto "BEGIN", zbog čega ne vidite izvršenje ispisa. Ostavljam vam ovo da isprobate i vidite kako idu vaši rezultati!

Primjer 5: Čitanje skripte iz datoteke

Ovaj je zeznut. Ovdje možete koristiti awk skriptu za čitanje datoteke.

Izrađujemo novu skriptu koja sadrži sljedeće.

ispis svemira $ 1 "počinje od" $ 6 "

Datoteku smo spremili kao vijest.

Sada pokrenite sljedeću naredbu na terminalu.

$ awk -F: -f newscript / etc / passwd

Fascinantno, zar ne!

Primjer 6: AWK naknadna obrada

Zatim ćemo pogledati naknadnu obradu AWK. Radi slično kao i prethodna obrada, ali ovaj put naknadna obrada koristi naredbu END.

$ awk 'BEGIN print "Sadržaj datoteke počinje sada:">> print $ 0>> END print "Datoteka završava"' mynewfile

Primjer 7: Korisnički definirane varijable

Također možete koristiti varijable unutar naredbe awk bez upotrebe broja ili znaka dolara.

Ispod je primjer.

$ awk 'BEGIN test = "Dobrodošli u FossLinux Awesome Linux Family" test testa'

Primjer 8: Ugrađene funkcije

Naredbe awk također dobro dođu sa svojim ugrađenim funkcijama. Na primjer, možete koristiti matematičke funkcije, kao i funkcije String.

$ awk 'POČINI x - "fossLinux"; ispisnik (x) '
$ awk 'POČINI x = exp (35); ispis x '

Primjer 9: Oblikovanje ispisa

Također možete formatirati funkciju printf koja dolazi s awkom. Mnogo je modifikatora koje možete koristiti. Na primjer, možete koristiti c za ispis kao niz; d možete koristiti i za cijelu vrijednost itd.

$ awk 'POČINI x = 200 * 200 printf "Rezultat je:% e \ n", x'

Primjer 10: Strukturirane naredbe

Također možete koristiti strukturirane naredbe kao što su if, else, while ili for loop. Pogledajmo donji primjer naredbe if.

$ awk 'if ($ 1> 20) print $ 2' mynewfile

Zaključak

To nas vodi do kraja našeg vodiča za naredbe awk. Dakle, je li vam bilo korisno i hoćete li ga koristiti za svoj posao? Komentirajte u nastavku i javite nam.

Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...
Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...