'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 AdgangskodeMd. 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.