Awk

Kako razčleniti datoteko, ločeno z zavihki, s pomočjo 'awk'

Kako razčleniti datoteko, ločeno z zavihki, s pomočjo 'awk'

'tab' se uporablja kot ločilo v datoteki, ločeni z zavihki. Ta vrsta besedilne datoteke je ustvarjena za shranjevanje različnih vrst besedilnih podatkov v strukturirani obliki.  V Linuxu obstajajo različne vrste ukazov za razčlenjevanje te vrste datotek.  Ukaz 'awk' je eden od načinov za razčlenitev datoteke, ločene z zavihki, na različne načine. V tej vadnici je prikazana uporaba ukaza 'awk' za branje datoteke, ločene z zavihki.

Ustvarite datoteko, ločeno z zavihki:

Ustvarite besedilno datoteko z imenom uporabnikov.txt z naslednjo vsebino za preizkus ukazov te vadnice. Ta datoteka vsebuje uporabniško ime, e-poštni naslov, uporabniško ime in geslo.

uporabnikov.txt

Ime E-pošta Uporabniško ime Geslo
Md. Robin [e-pošta zaščitena] robin89 563425
Nila Hasan [e-pošta zaščitena] nila78 245667
Mirza Abbas [e-pošta zaščitena] mirza23 534788
Aornob Hasan [e-pošta zaščitena] arnob45 778473
Nuhas Ahsan [e-pošta zaščitena] nuhas34 563452

Primer-1: Natisnite drugi stolpec datoteke, ločene z zavihki, z možnostjo -F

Naslednji ukaz 'sed' bo natisnil drugi stolpec besedilne datoteke, ločene z zavihki. Tukaj '-F' Možnost se uporablja za določanje ločila polja datoteke.

$ cat uporabniki.txt
$ awk -F '\ t' 'print $ 2' uporabniki.txt

Po zagonu ukazov se prikaže naslednji izhod. Drugi stolpec datoteke vsebuje uporabnikove e-poštne naslove, ki so prikazani kot izhodni podatki.

Primer 2: Natisnite prvi stolpec datoteke, ločene z zavihki, s spremenljivko FS

Naslednji ukaz 'sed' bo natisnil prvi stolpec besedilne datoteke, ločene z zavihki. Tukaj, FS Spremenljivka (Field Separator) se uporablja za določanje ločila polja datoteke.

$ cat uporabniki.txt
$ awk 'print $ 1' FS = '\ t' uporabniki.txt

Po zagonu ukazov se prikaže naslednji izhod. Prvi stolpec datoteke vsebuje imena uporabnikov, ki so prikazana kot izhod.

Primer 3: Natisnite tretji stolpec datoteke, ločene z zavihki, z oblikovanjem

Naslednji ukaz 'sed' bo natisnil tretji stolpec besedilne datoteke, ločene z zavihki, z oblikovanjem z uporabo FS spremenljivka in printf. Tukaj FS spremenljivka se uporablja za določanje ločila polja datoteke.

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

Po zagonu ukazov se prikaže naslednji izhod. Tretji stolpec datoteke vsebuje uporabniško ime, ki je bilo tukaj natisnjeno.

Primer 4: Natisnite tretji in četrti stolpec datoteke, ločene z zavihki, z uporabo OFS

OFS (Ločilnik izhodnega polja) se uporablja za dodajanje ločila polja v izhod. Naslednji ukaz 'awk' bo razdelil vsebino datoteke glede na ločilo zavihka (\ t) in natisnil 3. in 4. stolpec z uporabo zavihka (\ t) kot ločilo.

$ cat uporabniki.txt
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("output.txt ") 'uporabnikov.txt
$ izhod mačke.txt

Po zagonu zgornjih ukazov se prikaže naslednji izhod. 3. in 4. stolpec vsebujeta uporabniško ime in geslo, ki sta bila tukaj natisnjena.

Primer 5: Nadomestite določeno vsebino datoteke, ločene z zavihki

funkcija sub () se uporablja v 'awk za ukaz za zamenjavo. Naslednji ukaz 'awk' bo poiskal številko 45 in jo nadomestil s številko 90, če v datoteki obstaja iskalna številka. Po zamenjavi bo vsebina datoteke shranjena v izhodu.txt datoteko.

$ cat uporabniki.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' uporabniki.txt> izhod.txt
$ izhod mačke.txt

Po zagonu zgornjih ukazov se prikaže naslednji izhod. Izhod.Datoteka txt prikazuje spremenjeno vsebino po uporabi zamenjave. Tu se je vsebina 5. vrstice spremenila in 'arnob45' se spremeni v 'arnob90'.

Primer 6: dodajte niz na začetek vsake vrstice datoteke, ločene z zavihki

V nadaljevanju se z ukazom 'awk' možnost '-F' uporabi za razdelitev vsebine datoteke glede na zavihek (\ t). OFS je uporabil vejico (,) kot ločilo polja v izhodu. funkcija sub () se uporablja za dodajanje niza '- →' na začetku vsake vrstice izhoda.

$ cat uporabniki.txt
$ awk -F "\ t" 'OFS = ","; pod (/ ^ /, "---->"); natisni $ 1, $ 2, $ 3' uporabnikov.txt

Po zagonu zgornjih ukazov se prikaže naslednji izhod. Vsaka vrednost polja je ločena z vejico (,), na začetku vsake vrstice pa je dodan niz.

Primer 7: Nadomestite vrednost datoteke, ločene z zavihki, s funkcijo gsub ()

Funkcija gsub () se uporablja v ukazu 'awk' za globalno zamenjavo. Vse vrednosti v datoteki bodo nadomestile mesto, kjer se iskalni vzorec ujema. Glavna razlika med funkcijama sub () in gsub () je, da funkcija sub () ustavi nadomestno nalogo po iskanju prvega ujemanja, funkcija gsub () pa po vzorcu na koncu datoteke poišče zamenjavo. Naslednji ukaz "awk" bo v datoteki globalno poiskal besedo "nila" in "Mira" in vse pojavitve nadomestil z besedilom "Neveljavno ime", kjer se iskalna beseda ujema.

$ cat uporabniki.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Neveljavno ime"); print '.txt

Po zagonu zgornjih ukazov se prikaže naslednji izhod. Beseda „nila“ obstaja dvakrat v 3. vrstici datoteke, ki jo je v izhodu nadomestila beseda „Neveljavno ime“.

Primer 8: Natisnite oblikovano vsebino iz datoteke, ločene z zavihki

Naslednji ukaz 'awk' bo natisnil prvi in ​​drugi stolpec datoteke z oblikovanjem z uporabo printf. Izhod bo prikazal uporabnikovo ime tako, da bo v oklepaje pripisal e-poštni naslov.

$ cat uporabniki.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' uporabnikov.txt

Po zagonu zgornjih ukazov se prikaže naslednji izhod.

Zaključek

Vsako datoteko, ločeno z zavihki, lahko z uporabo ukaza 'awk' enostavno razčlenite in natisnete z drugim ločilnikom. V tej vadnici so na več primerih prikazani načini razčlenjevanja datotek, ločenih z zavihki, in tiskanja v različnih oblikah. V tej vadnici je razložena tudi uporaba funkcij sub () in gsub () v ukazu 'awk' za nadomeščanje vsebine datoteke, ločene z zavihki. Upam, da bo ta vadnica bralcem pomagala pri lažji analizi datoteke, ločene z zavihki, potem ko bodo pravilno vadili primere te vaje.

HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...
Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...