Awk

Sådan analyseres den tabulatorafgrænsede fil ved hjælp af 'awk'

Sådan analyseres den tabulatorafgrænsede fil ved hjælp af 'awk'

'fane' bruges som en separator I den tabulatorafgrænsede fil. Denne type tekstfil oprettes til at gemme forskellige typer tekstdata i et struktureret format.  Der findes forskellige typer kommandoer i Linux for at analysere denne type fil.  kommandoen 'awk' er en af ​​måderne til at analysere den tabulatorafgrænsede fil på forskellige måder. Brugen af ​​kommandoen 'awk' til at læse den tabulatorafgrænsede fil er vist i denne vejledning.

Opret en tabulatorafgrænset fil:

Opret en tekstfil med navnet brugere.txt med følgende indhold for at teste kommandoerne i denne tutorial. Denne fil indeholder brugerens navn, e-mail, brugernavn og adgangskode.

brugere.txt

Navn E-mail Brugernavn Adgangskode
Md. Robin [email protected] robin89 563425
Nila Hasan [email protected] nila78 245667
Mirza Abbas [e-mail-beskyttet] mirza23 534788
Aornob Hasan [email protected] arnob45 778473
Nuhas Ahsan [e-mail-beskyttet] nuhas34 563452

Eksempel 1: Udskriv den anden kolonne i en tabulatorafgrænset fil ved hjælp af indstillingen -F

Den følgende 'sed' kommando udskriver den anden kolonne i en tabulatorafgrænset tekstfil. Her, den '-F' indstilling bruges til at definere feltseparatoren for filen.

$ kat brugere.txt
$ awk -F '\ t' 'print $ 2' brugere.txt

Følgende output vises efter kørsel af kommandoerne. Den anden kolonne i filen indeholder brugerens e-mail-adresser, der vises som output.

Eksempel 2: Udskriv den første kolonne i en tabulatorafgrænset fil ved hjælp af FS-variablen

Den følgende 'sed' kommando udskriver den første kolonne i en tabulatorafgrænset tekstfil. Her, FS (Feltadskiller) -variabel bruges til at definere feltseparatoren for filen.

$ kat brugere.txt
$ awk 'print $ 1' FS = '\ t' brugere.txt

Følgende output vises efter kørsel af kommandoerne. Den første kolonne i filen indeholder brugerens navne, der vises som output.

Eksempel 3: Udskriv den tredje kolonne i en tabulatorafgrænset fil med formatering

Den følgende 'sed' kommando udskriver den tredje kolonne i den tabulatorafgrænsede tekstfil med formatering ved hjælp af FS variabel og printf. Her, den FS variabel bruges til at definere feltseparatoren for filen.

$ kat brugere.txt
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3' brugere.txt

Følgende output vises efter kørsel af kommandoerne. Den tredje kolonne i filen indeholder det brugernavn, der er udskrevet her.

Eksempel 4: Udskriv tredje og fjerde kolonne i den tabulatorafgrænsede fil ved hjælp af OFS

OFS (Output Field Separator) bruges til at tilføje en field separator i output. Følgende kommando 'awk' deler indholdet af filen baseret på fane (\ t) separator og udskriver 3. og 4. kolonne ved hjælp af fanen (\ t) som separator.

$ kat brugere.txt
$ awk -F "\ t" 'OFS = "\ t" udskriv $ 3, $ 4> ("output.txt ") 'brugere.txt
$ kat output.txt

Følgende output vises efter kørsel af ovenstående kommandoer. Den tredje og fjerde kolonne indeholder brugernavnet og adgangskoden, som er udskrevet her.

Eksempel 5: Erstat det bestemte indhold i den tabulatorafgrænsede fil

sub () -funktion bruges i 'awk til kommando for erstatning. Den følgende kommando 'awk' søger på nummeret 45 og erstatter tallet 90, hvis det søgende nummer findes i filen. Efter udskiftningen gemmes filens indhold i output.txt-fil.

$ kat brugere.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' brugere.txt> output.txt
$ kat output.txt

Følgende output vises efter kørsel af ovenstående kommandoer. Outputtet.txt-filen viser det ændrede indhold efter anvendelse af erstatningen. Her er indholdet af 5. linje ændret, og 'arnob45' ændres til 'arnob90'.

Eksempel 6: Tilføj streng i begyndelsen af ​​hver linje i en tabulatorafgrænset fil

I det følgende bruges kommandoen 'awk', '-F' til at opdele indholdet af filen baseret på fanen (\ t). OFS har brugt til at tilføje et komma (,) som en feltseparator i output. sub () funktion bruges til at tilføje strengen '- →' i begyndelsen af ​​hver linje i output.

$ kat brugere.txt
$ awk -F "\ t" 'OFS = ","; sub (/ ^ /, "---->"); udskriv $ 1, $ 2, $ 3' brugere.txt

Følgende output vises efter kørsel af ovenstående kommandoer. Hver feltværdi er adskilt med komma (,), og en streng tilføjes i begyndelsen af ​​hver linje.

Eksempel 7: Udskift værdien af ​​en tabulatorafgrænset fil ved hjælp af funktionen gsub ()

gsub () -funktionen bruges i kommandoen 'awk' til global erstatning. Alle strengværdier i filen erstattes, hvor søgemønsteret matcher. Hovedforskellen mellem sub () og gsub () -funktionerne er, at sub () -funktionen stopper udskiftningsopgaven efter at have fundet det første match, og gsub () -funktionen søger i mønsteret i slutningen af ​​filen for erstatning. Den følgende kommando 'awk' søger ordet 'nila' og 'Mira' globalt i filen og erstatter alle forekomster med teksten 'Ugyldigt navn', hvor søgeordet matcher.

$ kat brugere.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Ugyldigt navn"); print 'brugere.txt

Følgende output vises efter kørsel af ovenstående kommandoer. Ordet 'nila' findes to gange i den tredje linje i filen, der er blevet erstattet af ordet 'Ugyldigt navn' i output.

Eksempel 8: Udskriv det formaterede indhold fra en tabulatorafgrænset fil

Den følgende kommando 'awk' udskriver den første og den anden kolonne i filen med formatering ved hjælp af printf. Outputtet viser brugerens navn ved at omslutte e-mail-adressen i parentes.

$ kat brugere.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' brugere.txt

Følgende output vises efter kørsel af ovenstående kommandoer.

Konklusion

Enhver tabulatorafgrænset fil kan let parses og udskrives med en anden afgrænser ved hjælp af kommandoen 'awk'. Måderne til at analysere tabulatorafgrænsede filer og udskrive i forskellige formater er vist i denne vejledning ved hjælp af flere eksempler. Brugen af ​​sub () og gsub () -funktioner i kommandoen 'awk' til at erstatte indholdet af den tabulatorafgrænsede fil forklares også i denne vejledning. Jeg håber, at denne tutorial hjælper læserne med at analysere den tabulatorafgrænsede fil let efter at have praktiseret eksemplerne på denne tutorial korrekt.

Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...
Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...