Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
linux mint cimet vs mate
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>>$ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
Rajinikanth
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v , , in . Poleg tega Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev. Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja. Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan. KAJ LAHKO POČNEMO Z AWK? 1. Operacije AWK: 2. Uporabno za: 3. Programski konstrukti: Sintaksa: Opcije: Vzorčni ukazi primer: Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere: Izhod: V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke. 2. Natisnite vrstice, ki se ujemajo z danim vzorcem. Izhod: V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'. 3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico. Izhod: V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača. Vgrajene spremenljivke v Awk Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja. Primeri: Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice) Izhod: V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice. Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje) Izhod: V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje. Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6) Izhod: Več primerov Za navedeno besedilno datoteko: 1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt: 2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt: Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt: 3) Za tiskanje katere koli neprazne vrstice, če je prisotna tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice: pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt ALI awk 'NF <= 0 {print NR}' geeksforgeeks.txt 4) Če želite najti dolžino najdaljše vrstice v datoteki: 5) Če želite prešteti vrstice v datoteki: 6) Tiskanje vrstic z več kot 10 znaki: 7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu: 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zankeawk options 'selection _criteria {action }' input-file>izhodna datoteka> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>zaposleni.txt>>>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
$ awk '{print ,}' employee.txt> Izhod:
dolžina niza java
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru in predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - , , in tako naprej ( Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev. Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja. Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan. KAJ LAHKO POČNEMO Z AWK? 1. Operacije AWK: 2. Uporabno za: 3. Programski konstrukti: Sintaksa: Opcije: Vzorčni ukazi primer: Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere: Izhod: V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke. 2. Natisnite vrstice, ki se ujemajo z danim vzorcem. Izhod: V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'. 3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico. Izhod: V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača. Vgrajene spremenljivke v Awk Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja. Primeri: Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice) Izhod: V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice. Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje) Izhod: V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje. Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6) Izhod: Več primerov Za navedeno besedilno datoteko: 1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt: 2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt: Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt: 3) Za tiskanje katere koli neprazne vrstice, če je prisotna tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice: pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt ALI awk 'NF <= 0 {print NR}' geeksforgeeks.txt 4) Če želite najti dolžino najdaljše vrstice v datoteki: 5) Če želite prešteti vrstice v datoteki: 6) Tiskanje vrstic z več kot 10 znaki: 7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu: 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zankeawk options 'selection _criteria {action }' input-file>izhodna datoteka> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>zaposleni.txt>>>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
- NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>> $ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print ,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>> $ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Izhod:
urfi javed
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
markdown podčrtaj
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length(Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>> $ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
)>max) max = length(Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>> $ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length()>10' geeksforgeeks.txt> Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zankeSintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka>Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>>$ awk '{print}' employee.txt> Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt>Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt>Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt>Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt>Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt>Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt>1 - A 2 - Tarun 3 – Manav 4 - Praveen>2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt>B A12 B6 M42>3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt>13>5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt>3>6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>Tarun A12 1 Praveen M42 3>7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'>square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if( == 'B6') print Awk je skriptni jezik, ki se uporablja za obdelavo podatkov in ustvarjanje poročil. Programski jezik ukazov awk ne zahteva prevajanja in uporabniku omogoča uporabo spremenljivk, numeričnih funkcij, funkcij nizov in logičnih operaterjev.
Awk je pripomoček, ki programerju omogoča pisanje majhnih, a učinkovitih programov v obliki stavkov, ki definirajo besedilne vzorce, ki jih je treba iskati v vsaki vrstici dokumenta, in dejanje, ki ga je treba izvesti, ko se najde ujemanje v linija. Awk se večinoma uporablja za skeniranje in obdelavo vzorcev. Preišče eno ali več datotek, da ugotovi, ali vsebujejo vrstice, ki se ujemajo z navedenimi vzorci, in nato izvede povezana dejanja.
Awk je skrajšan iz imen razvijalcev – Aho, Weinberger in Kernighan.
KAJ LAHKO POČNEMO Z AWK?
1. Operacije AWK:
(a) Pregleduje datoteko vrstico za vrstico
(b) Razdeli vsako vnosno vrstico na polja
(c) Primerja vnosno vrstico/polja z vzorcem
(d) Izvede dejanja na ujemajočih se vrsticah
2. Uporabno za:
(a) Pretvorite podatkovne datoteke
(b) Izdelava oblikovanih poročil
3. Programski konstrukti:
(a) Oblikujte izhodne vrstice
(b) Aritmetične in nizovne operacije
(c) Pogojniki in zanke
Sintaksa:
awk options 'selection _criteria {action }' input-file>izhodna datoteka> Opcije:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Vzorčni ukazi
primer:
Upoštevajte naslednjo besedilno datoteko kot vhodno datoteko za vse spodnje primere:
$cat>zaposleni.txt>>> $ awk '{print}' employee.txt>
Izhod:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
V zgornjem primeru ni podanega vzorca. Torej so dejanja uporabna za vse vrstice. Action print without any argument privzeto natisne celotno vrstico, tako da brez napak natisne vse vrstice datoteke.
2. Natisnite vrstice, ki se ujemajo z danim vzorcem.
$ awk '/manager/ {print}' employee.txt> Izhod:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
V zgornjem primeru ukaz awk natisne vse vrstice, ki se ujemajo z 'manager'.
3. Razdelitev črte na polja: Za vsak zapis, tj. vrstico, ukaz awk razdeli zapis, privzeto ločen s presledkom, in ga shrani v spremenljivke $n. Če ima vrstica 4 besede, bo shranjena v $1, $2, $3 in $4. Poleg tega $0 predstavlja celotno vrstico.
$ awk '{print $1,$4}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 in $4 predstavljata polji Ime in Plača.
Vgrajene spremenljivke v Awk
Vgrajene spremenljivke Awk vključujejo spremenljivke polja - $1, $2, $3 in tako naprej ($0 je celotna vrstica) - ki razdelijo vrstico besedila na posamezne besede ali dele, imenovane polja.
NR: Ukaz NR vodi trenutno štetje števila vhodnih zapisov. Ne pozabite, da so zapisi običajno vrstice. Ukaz Awk izvede izjave vzorca/dejanja enkrat za vsak zapis v datoteki. NF: ukaz NF hrani število polj v trenutnem vhodnem zapisu. FS: ukaz FS vsebuje znak za ločilo polj, ki se uporablja za razdelitev polj v vnosni vrstici. Privzeto je presledek, kar pomeni presledke in tabulatorje. FS lahko dodelite drugemu znaku (običajno v BEGIN), da spremenite ločilo polja. RS: Ukaz RS shrani trenutni ločilni znak zapisa. Ker je vhodna vrstica privzeto vhodni zapis, je privzeti znak za ločilo zapisa nova vrstica. OFS: Ukaz OFS shrani ločilo izhodnih polj, ki ločuje polja, ko jih Awk natisne. Privzeto je prazen prostor. Kadarkoli ima print več parametrov, ločenih z vejicami, bo natisnil vrednost OFS med posameznimi parametri. ORS: Ukaz ORS shrani ločilo izhodnih zapisov, ki loči izhodne vrstice, ko jih Awk natisne. Privzeta vrednost je znak za novo vrstico. print samodejno izpiše vsebino ORS na koncu vsega, kar je dano za tiskanje.
Primeri:
Uporaba vgrajenih spremenljivk NR (prikaz številke vrstice)
$ awk '{print NR,$0}' employee.txt> Izhod:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
V zgornjem primeru ukaz awk z NR natisne vse vrstice skupaj s številko vrstice.
Uporaba vgrajenih spremenljivk NF (Prikaži zadnje polje)
$ awk '{print $1,$NF}' employee.txt> Izhod:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
V zgornjem primeru $1 predstavlja ime in $NF predstavlja plačo. Plačo lahko dobimo z uporabo $NF, kjer $NF predstavlja zadnje polje.
Druga uporaba vgrajenih spremenljivk NR (prikaz vrstice od 3 do 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Izhod:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Več primerov
Za navedeno besedilno datoteko:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>>
1) Če želite natisniti prvi element skupaj s številko vrstice (NR), ločeno z – iz vsake vrstice v geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
Vprašanje bi moralo biti: - Če želite vrniti drugi stolpec/element iz geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Za tiskanje katere koli neprazne vrstice, če je prisotna
$ awk 'NF <0' geeksforgeeks.txt>
tukaj mora biti NF 0, ki ni manjši od in uporabnik mora natisniti tudi številko vrstice:
pravilen odgovor: awk 'NF == 0 {print NR}' geeksforgeeks.txt
ALI
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Če želite najti dolžino najdaljše vrstice v datoteki:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) Če želite prešteti vrstice v datoteki:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Tiskanje vrstic z več kot 10 znaki:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Za iskanje/preverjanje katerega koli niza v katerem koli določenem stolpcu:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
;}' geeksforgeeks.txt> 8) Če želite natisniti kvadrate prvih števil od 1 do n, recite 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>