Der findes mange hjælpeværktøjer i Linu. – operativsystemet til at søge og generere en rapport fra tekstdata eller fil. Brugeren kan nemt udføre mange typer søgning, udskiftning og rapport generere opgaver ved hjælp af A .k, grep og sed kommandoer. a .k er ikke bare en kommando. Det er et scriptsprog, der kan bruges fra både terminal og A .k-fil. Det understøtter variablen, betinget erklæring, array, sløjfer osv. ligesom andre scriptsprog., Det kan læse ethvert filindhold linje for linje og adskille felterne eller kolonnerne baseret på en bestemt afgrænsning. Det understøtter også regulære udtryk for at søge bestemt streng i teksten indhold eller fil og tager handlinger, hvis nogen match founds. Hvordan du kan bruge A .k kommando og script vises i denne tutorial ved hjælp af 20 nyttige eksempler.,en
Brug awk med printf
printf() funktionen bruges til at formatere ethvert output i de fleste programmeringssprog., Denne funktion kan bruges med A .k kommando til at generere forskellige typer af formaterede udgange. a .k kommando hovedsagelig anvendes til enhver tekstfil. Opret en tekstfil med navnet medarbejder.t .t med indholdet nedenfor, hvor felter er adskilt af tab (‘\t’).
medarbejder.txt
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Lever 70000
følgende awk kommando vil læse data fra medarbejder.t .t-fil linje for linje og udskrive den første arkiveret efter formatering. Her betyder “%10s\n”, at output vil være 10 tegn lang., Hvis værdien af output er mindre end 10 tegn, tilføjes mellemrummene foran på værdien.
Output:
Gå til Indhold
awk at opdele på hvid plads
standard word eller field separator for at opdele en tekst er hvide rum. a .k kommando kan tage tekst værdi som input på forskellige måder. Indtastningsteksten sendes fra echo-kommandoen i det følgende eksempel., Teksten, ‘Jeg kan lide programmering’ vil blive delt som standard separator, mellemrum, og det tredje ord udskrives som output.
Output:
Gå til Indhold
awk at ændre den afgrænser
awk-kommandoen kan bruges til at ændre den afgrænser til en fil indhold. Antag, at du har en tekstfil med navnet telefon.t .t med følgende indhold, hvor ‘:’ bruges som feltseparator for filindholdet.
telefon.,txt
+880:1855:456:907
+9:7777:38644:808
Kør følgende awk kommando til at ændre den afgrænser, ‘:’ af ‘-‘ for at indholdet af den fil, telefon.t .t.
$ a .k ‘$1=$1’ FS=”:” OFS=”-” telefon.txt
Output:
Gå til Indhold
awk med tab-afgrænset data
awk kommando har mange indbyggede variable, som anvendes til at læse tekst på forskellige måder. To af dem er FS og OFS., FS er input felt separator og OFS er output felt separator variabler. Anvendelserne af disse variabler er vist i dette afsnit. Opret en fane adskilt fil med navnet input.t .t med følgende indhold for at teste brugen af FS og OFS variabler.
Input.txt
Server-side scripting sprog,
Database-Server
Web-Server
Bruger FS variabel med fane
Den følgende kommando vil opdele hver linje af inddata.t .t-fil baseret på fanen (‘\t’) og udskrive det første felt på hver linje.,
Output:
Bruger OFS variabel med fane
følgende awk kommando udskrives den 9. og 5. områderne ‘ls -l’ kommando udgang med fanen separator efter udskrivning kolonnen titel “Navn” og “Størrelse”. Her bruges OFS-variabel til at formatere output ved hjælp af en fane.,
$ ls -l | awk -v OFS=’\t’ ‘BEGIN { printf “%s\t%s\n”, “Navn”, “Size”} {print $9,$5}’
Output:
Gå til Indhold
awk med CSV-data
indholdet af en CSV-fil kan blive fortolket på flere forskellige måder ved hjælp af awk-kommando. Opret en CSV-fil med navnet ‘ kunde.csv ‘ med følgende indhold til at anvende a .k kommando.
kunde.t .t
læsning enkelt felt af CSV-fil
‘- f’ valgmulighed bruges med A .k kommando til at indstille skilletegn til opdeling hver linje i filen., Følgende a .k-kommando udskriver kundens navnefelt.csv-fil.
$ a customerk-f “,” ‘{print $2}’ kunde.csv
Output:
læsning af flere felter ved at kombinere med anden tekst
følgende kommando udskriver tre kundefelter.csv ved at kombinere Titel Tekst, Navn, e-mail og telefon. Den første linje af kunden.csv-fil indeholder titlen på hvert felt. NR variabel indeholder linjenummeret på filen, når A .k kommando analyserer filen., I dette eksempel bruges NR-variablen til at udelade den første linje i filen. Udgangen vil vise 2., 3. og 4. felter af alle linjer undtagen den første linje.
Output:
Læsning CSV-fil ved hjælp af en awk-scriptet
awk-scriptet kan udføres ved at køre awk fil. Hvordan du kan oprette A .k-fil og køre filen vises i dette eksempel. Opret en fil med navnet a .kcsv.akk med følgende kode., Begynd søgeord bruges i scriptet til at informere a .k kommando til at udføre scriptet af begynd del først, før du udfører andre opgaver. Her bruges field separator (FS) til at definere splitting delimiter, og 2.og 1. felter udskrives i henhold til det format, der bruges i printf () – funktionen.
BEGIN {FS = “,”} {printf “%5s(%s)\n”, $2,$1}
Kør awkcsv.a .k fil med indholdet af kunden.csv-fil ved følgende kommando.
Output:
Gå til Indhold
awk regex
Det regulære udtryk er et mønster, der bruges til at søge enhver streng i en tekst. Forskellige typer af komplicerede søgning og erstatte opgaver kan gøres meget nemt ved hjælp af det regulære udtryk. Nogle enkle anvendelser af det regulære udtryk med A .k-kommandoen vises i dette afsnit.
følgende kommando matcher ordet Fool eller bool eller Cool med inputstrengen og udskriver, hvis ordet grundlægger., Her vil dukke ikke matche og ikke udskrive.
Output:
Søge streng i starten af den linje,
‘^’ symbol bruges i den regulære udtryk til at søge et mønster i starten af linjen. ‘Linu.’ ord vil blive søgt ved starten af hver linje i teksten i det følgende eksempel. Her starter to linjer med teksten ‘ Linu.’, og disse to linjer vises i output.,
en populær blog site” | awk ‘/^Linux/’
Output:
Søge streng i slutningen af den linje
‘$’ symbol bruges i den regulære udtryk til at søge et mønster i slutningen af hver linje af teksten. ‘Script’ ord søges i følgende eksempel. Her indeholder to linjer ordet, Script i slutningen af linjen.,
Output:
Søgning ved at udelade bestemt tegnsæt
‘^’ symbol angiver starten af teksten, når den er brugt i foran af enhver streng mønster (‘/^…/’) eller før nogen tegnsæt anmeldt af ^. Hvis symbolet ‘ ^ ‘ bruges inden i det tredje beslag, udelades det definerede tegnsæt inde i beslaget på søgetidspunktet., Følgende kommando vil søge ethvert ord, der ikke starter med ‘F’, men slutter med ‘ool’. Cool og bool udskrives efter mønster-og tekstdata.
Output:
Gå til Indhold
awk mellem store og små bogstaver regex
Som standard, regulære udtryk er versalfølsom søgning, når du søger et mønster i strengen. Case ufølsom søgning kan gøres ved a .k kommando med det regulære udtryk., I det følgende eksempel, Tolo .er () funktion bruges til at gøre case ufølsom søgning. Her konverteres det første ord i hver linje i inputteksten til små bogstaver ved at bruge Tolo .er () – funktionen og matche med det regulære udtryksmønster. toupper () – funktionen kan også bruges til dette formål, i dette tilfælde skal mønsteret defineres af alle store bogstaver. Teksten defineret i det følgende eksempel indeholder søgeordet ‘webeb’ i to linjer, der udskrives som output.,
Output:
Gå til Indhold
awk med NF (antallet af felter) variabel
NF er en indbygget variabel af awk-kommandoen, som bruges til at tælle det samlede antal felter i hver linje i den indtastede tekst. Opret en tekstfil med flere linjer og flere ord. input.t .t-fil bruges her, som er oprettet i det foregående eksempel.,
brug af NF fra kommandolinjen
Her bruges den første kommando til at vise indholdet af input.t .t-fil og anden kommando bruges til at vise det samlede antal felter i hver linje i filen ved hjælp af NF-variabel.
$ a .k ‘{print NF}’ input.txt
Output:
Bruger NF i awk fil
Opret en awk fil med navnet tæller.akk med scriptet nedenfor. Når dette script vil udføre med nogen tekstdata derefter hver linje indhold med samlede felter vil blive udskrevet som output.
tæller.,awk
{print “”}
Kør script med følgende kommando.
Output:
Gå til Indhold
awk gensub() funktion
getsub() er en substitution funktion, der bruges til at søge streng er baseret på særlige skilletegn eller regulært udtryk. Denne funktion er defineret i’ Ga .k ‘ pakke, som ikke er installeret som standard. Syntaksen for denne funktion er angivet nedenfor., Den første parameter indeholder det regulære udtryksmønster eller søgefelter, den anden parameter indeholder erstatningsteksten, den tredje parameter angiver, hvordan søgningen skal udføres, og den sidste parameter indeholder teksten, hvor denne funktion vil blive anvendt.
Syntax:
Kør følgende kommando for at installere gawk-pakke til brug af getsub() funktion med awk kommando.
Opret en tekstfil med navnet ‘salesinfo.,t .t ‘ med følgende indhold for at øve dette eksempel. Her adskilles felterne med en fane.
salesinfo.txt
Tue 800000
Wed 750000
Thu 200000
Fri 430000
Sat 820000
Kør følgende kommando for at læse den numeriske felter af salesinfo.t .t-fil og udskrive det samlede salg beløb. Her angiver den tredje parameter, ‘G’ den globale søgning. Det betyder, at mønsteret vil blive søgt i det fulde indhold af filen.,
Output:
Gå til Indhold
awk med slump () – funktionen
rand() funktionen bruges til at generere tilfældige tal, der er større end 0 og mindre end 1. Så det vil altid generere et brøktal mindre end 1. Den følgende kommando vil generere et fraktioneret tilfældigt tal og multiplicere værdien med 10 for at få et tal mere end 1., Et brøktal med to cifre efter decimaltegnet udskrives til anvendelse af printf () – funktionen. Hvis du kører følgende kommando flere gange, får du forskellige output hver gang.
Output:
Gå til Indhold
awk bruger-defineret funktion
Alle funktioner, som er anvendt i det foregående eksempler er indbygget funktioner. Men du kan erklære en brugerdefineret funktion i dit a .k-script til at udføre en bestemt opgave., Antag, at du vil oprette en brugerdefineret funktion til at beregne arealet af et rektangel. For at udføre denne opgave skal du oprette en fil med navnet ‘område.akk ‘ med følgende script. I dette eksempel erklæres et brugerdefineret funktion navngivet område() i scriptet, der beregner området baseret på inputparametrene og returnerer områdeværdien. getline kommando bruges her til at tage input fra brugeren.
område.a .k
Kør scriptet.
Output:
Gå til Indhold
awk, hvis eksempel
awk understøtter betingede udsagn som andre standard programmeringssprog. Tre typer if-udsagn vises i dette afsnit ved hjælp af tre eksempler. Opret en tekstfil navngivne elementer.t witht med følgende indhold.
elementer.txt
Mus A4Tech
HP Printer $200
den Enkle, hvis eksempel:
han følgende kommando vil læse indholdet af de forskellige elementer.t .t-fil og kontrollere det 3.felt værdi i hver linje., Hvis værdien er tom, udskriver den en fejlmeddelelse med linjenummeret.
Output:
if-else eksempel:
følgende kommando udskriver elementprisen, hvis det 3.felt findes i linjen, ellers udskriver det en fejlmeddelelse.
else print “item price is” $3 }’ items.,t .t
Output:
if-else-if eksempel:
Når følgende kommando udføres fra terminalen, tager den input fra brugeren. Inputværdien vil blive sammenlignet med hver betingelse, indtil betingelsen er sand. Hvis en tilstand bliver sand, vil den udskrive den tilsvarende karakter. Hvis inputværdien ikke stemmer overens med nogen betingelse, vil den udskrive mislykkes.,
getline mark < “-“
if (mark >= 90) print “A+”
else if( mark >= 80) print “A”
else if( mark >= 70) print “B+”
else print “Fejl” }’
Output:
Gå til Indhold
awk variabler
erklæringen af awk-variabel, der svarer til den erklæring, som shell-variabel. Der er en forskel i at læse værdien af variablen., ‘$’symbol bruges med variabelnavnet for shell-variablen til at læse værdien. Men der er ingen grund til at bruge ‘$’ med A .k variabel til at læse værdien.
brug af simpel variabel:
følgende kommando erklærer en variabel ved navn ‘site’, og en strengværdi tildeles den variabel. Værdien af variablen udskrives i den næste sætning.
Output:
ved Hjælp af en variabel til at hente data fra en fil
Den følgende kommando vil søge ordet “Printer” i fil-elementer.t .t. Hvis en linje i filen starter med’ Printer’, gemmer den værdien af 1., 2. og 3. felter i tre variabler. navn og prisvariabler udskrives.
print “element pris=” prisen }’ elementer.,txt
Output:
Gå til Indhold
awk arrays
Både numerisk og associerede arrays kan bruges i awk. Array variabel erklæring i A .k er samme til andre programmeringssprog. Nogle anvendelser af arrays er vist i dette afsnit.
associativ Array:
indekset for arrayet vil være en hvilken som helst streng for det associative array. I dette eksempel erklæres og udskrives et associativt array på tre elementer.,
Output:
numerisk Array:
et numerisk array på tre elementer erklæres og udskrives ved at adskille fanen.
Output:
gå til indhold
A .k loop
tre typer sløjfer understøttes af a .k. Anvendelserne af disse sløjfer vises her ved hjælp af tre eksempler.
Mens loop:
Mens loop, der bruges i følgende kommando, vil gentage sig i 5 gange og afslutte fra loop for break-sætningen.,
Output:
For-løkke:
For-løkke, der anvendes i det følgende awk kommando vil beregne summen fra 1 til 10 og udskrive værdi.,
Output:
Do-while-løkken:
en do-while-løkke af den følgende kommando vil udskrive alle lige numre fra 10 til 5.,
while (counter > 5) }’
Output:
Gå til Indhold
awk til at udskrive den første kolonne
Den første kolonne af enhver fil, der kan udskrives ved hjælp af $1 variabel i awk. Men hvis værdien af den første kolonne indeholder flere ord, udskrives kun det første ord i den første kolonne. Ved at bruge en bestemt afgrænsning kan den første kolonne udskrives korrekt. Opret en tekstfil med navnet studerende.,t witht med følgende indhold. Her indeholder den første kolonne teksten til to ord.
studerende.,txt
Abir Hossain 35<sup>th</sup> batch
John Abraham 40<sup>th</sup> batch
Run awk command without any delimiter. The first part of the first column will be printed.,
Kør a .k-kommando med følgende afgrænsning. Den fulde del af den første kolonne udskrives.
Output:
Gå til Indhold
awk at udskrive den sidste kolonne
$(NF) variable kan bruges til at udskrive den sidste kolonne i en fil. Følgende a .k-kommandoer udskriver den sidste del og den fulde del af den sidste kolonne af eleverne.t filet-fil.,
$ a .k-F ‘\\S\\S’ ‘{print $(NF)}’ studerende.txt
Output:
Gå til Indhold
awk med grep
grep er en anden nyttig kommando af Linux for at søge efter indhold i en fil, der er baseret på regulære udtryk. Hvordan både A .k-og grep-kommandoer kan bruges sammen, vises i følgende eksempel. grep kommando bruges til at søge oplysninger om Medarbejder-id, ‘1002’ fra medarbejderen.t filet-fil. Udgangen af grep-kommandoen sendes til a .k som inputdata., 5% bonus tælles og udskrives baseret på lønnen til medarbejderens id, ‘1002’ af A .k-kommandoen.
$ grep ‘1002’ medarbejder.txt | awk -F ‘\t’ ‘{ print $2 ” vil få $” ($3*5)/100 “bonus”}’
Output:
Gå til Indhold
awk med BASH-fil
Som andre Linux kommando, awk-kommandoen kan også bruges i et BASH-script. Opret en tekstfil navngivne kunder.t witht med følgende indhold. Hver linje i denne fil indeholder oplysninger om fire felter., Disse er kundens ID, navn, adresse og mobilnummer dem er adskilt af ‘/’.
kunder.t Createt
Opret en bash-fil med navnet item_search.bash med følgende script. Ifølge dette script vil statsværdien blive taget fra brugeren og søgt i kunderne.t .t-fil ved grep kommando og videre til a .k kommando som input. A .k kommando vil læse 2.og 4. felter i hver linje. Hvis inputværdien stemmer overens med en hvilken som helst statsværdi af kunder.t .t-fil så vil det udskrive kundens navn og mobilnummer, ellers vil det udskrive meddelelsen “Ingen kunde fundet”.,
item_search.bash
Kør følgende kommandoer for at vise udgangene.
$ bash item_search.bash
Output:
Gå til Indhold
awk med sed
en Anden nyttig søger redskab til Linux er sed. Denne kommando kan bruges til både at søge og erstatte tekst af enhver fil. Følgende eksempel viser brugen af A .k kommando med sed kommando. Her sed kommando vil søge alle medarbejder navne starter med’ J ‘ og passerer til a .k kommando som input., a .k vil udskrive medarbejder navn og ID efter formatering.
$ sed-n ‘/J/p’ medarbejder.txt | awk -F ‘\t’ ‘{ printf “%s(%s)\n”, $2, $1 }’
Output:
Gå til Indhold
Konklusion:
Du kan bruge awk-kommandoen til at oprette forskellige typer af rapporter er baseret på en tabel eller afgrænset data efter filtrering af data korrekt. Håber, du vil være i stand til at lære, hvordan a .k command fungerer efter at have praktiseret eksemplerne vist i denne tutorial.