Awk

Kako raščlaniti datoteku s razgraničenim karticama pomoću awk

Kako raščlaniti datoteku s razgraničenim karticama pomoću awk

'tab' koristi se kao separator u datoteci koja je razdvojena karticama. Ova vrsta tekstualne datoteke stvorena je za pohranu različitih vrsta tekstualnih podataka u strukturiranom formatu.  U Linuxu postoje različite vrste naredbi za raščlanjivanje ove vrste datoteka.  Naredba 'awk' jedan je od načina raščlanjivanja datoteke razdvojene karticama na različite načine. Upotreba naredbe 'awk' za čitanje datoteke razdvojene karticama prikazana je u ovom vodiču.

Stvorite datoteku razdvojenu karticama:

Stvorite tekstualnu datoteku s imenom korisnika.txt sa sljedećim sadržajem za testiranje naredbi ovog vodiča. Ova datoteka sadrži korisničko ime, e-adresu, korisničko ime i lozinku.

korisnika.txt

Ime E-mail Korisničko ime Lozinka
Doktor medicine. Robin [zaštićen e-poštom] robin89 563425
Nila Hasan [zaštićena e-poštom] nila78 245667
Mirza Abbas [e-mail zaštićen] mirza23 534788
Aornob Hasan [zaštićen e-poštom] arnob45 778473
Nuhas Ahsan [zaštićen e-poštom] nuhas34 563452

Primjer 1: Ispišite drugi stupac datoteke razdvojene karticama pomoću opcije -F

Sljedeća naredba 'sed' ispisat će drugi stupac tekstualne datoteke razdvojene karticama. Evo, '-F' opcija se koristi za definiranje separatora polja datoteke.

$ mačka korisnika.txt
$ awk -F '\ t' 'print $ 2' korisnici.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Drugi stupac datoteke sadrži adrese e-pošte korisnika koje se prikazuju kao izlaz.

Primjer 2: Ispišite prvi stupac datoteke razdvojene karticama pomoću FS varijable

Sljedeća naredba 'sed' ispisat će prvi stupac tekstualne datoteke razdvojene karticama. Ovdje, FS Varijabla (Field Separator) koristi se za definiranje separatora polja datoteke.

$ mačka korisnika.txt
$ awk 'print $ 1' FS = '\ t' korisnici.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Prvi stupac datoteke sadrži korisnikova imena koja se prikazuju kao izlaz.

Primjer-3: Ispišite treći stupac datoteke razdvojene karticama oblikovanjem

Sljedeća naredba 'sed' ispisat će treći stupac tekstualne datoteke razdvojene karticama s oblikovanjem pomoću FS varijabilna i printf. Evo, FS varijabla koristi se za definiranje separatora polja datoteke.

$ mačka korisnika.txt
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3' korisnika.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Treći stupac datoteke sadrži korisničko ime koje je ovdje ispisano.

Primjer 4: Ispišite treći i četvrti stupac datoteke razdvojene karticama pomoću OFS-a

OFS (Output Field Separator) koristi se za dodavanje separatora polja u izlaz. Sljedeća naredba 'awk' podijelit će sadržaj datoteke na temelju separatora tab (\ t) i ispisati 3. i 4. stupac koristeći tab (\ t) kao separator.

$ mačka korisnika.txt
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("output.txt ") 'korisnika.txt
$ mačka izlaz.txt

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi. Treći i četvrti stupac sadrže korisničko ime i lozinku, koji su ovdje ispisani.

Primjer 5: Zamijenite određeni sadržaj datoteke razdvojene karticama

funkcija sub () koristi se u 'awk za naredbu za zamjenu. Sljedeća naredba "awk" pretražit će broj 45 i zamijeniti brojem 90 ako broj za pretraživanje postoji u datoteci. Nakon zamjene, sadržaj datoteke pohranit će se u izlaz.txt datoteku.

$ mačka korisnika.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' korisnika.txt> izlaz.txt
$ mačka izlaz.txt

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi. Izlaz.txt datoteka prikazuje modificirani sadržaj nakon primjene zamjene. Ovdje se sadržaj 5. retka izmijenio, a 'arnob45' promijenio je u 'arnob90'.

Primjer 6: Dodajte niz na početak svakog retka datoteke razdvojene karticama

U nastavku, naredba 'awk', opcija '-F' koristi se za dijeljenje sadržaja datoteke na temelju kartice (\ t). OFS je koristio za dodavanje zareza (,) kao separatora polja u izlazu. funkcija sub () koristi se za dodavanje niza '- →' na početak svakog retka izlaza.

$ mačka korisnika.txt
$ awk -F "\ t" 'OFS = ","; pod (/ ^ /, "---->"); ispis korisnika $ 1, $ 2, $ 3'.txt

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi. Svaka vrijednost polja odvojena je zarezom (,), a niz se dodaje na početak svakog retka.

Primjer 7: Zamijenite vrijednost datoteke razdvojene karticama upotrebom funkcije gsub ()

Funkcija gsub () koristi se u naredbi 'awk' za globalnu zamjenu. Sve vrijednosti niza datoteke zamijenit će mjesto podudaranja uzorka pretraživanja. Glavna razlika između funkcija sub () i gsub () je u tome što funkcija sub () zaustavlja zadatak zamjene nakon pronalaska prvog podudaranja, a funkcija gsub () pretražuje uzorak na kraju datoteke radi zamjene. Sljedeća naredba "awk" pretražit će riječ "nila" i "Mira" globalno u datoteci i zamijeniti sve pojave tekstom "Nevaljano ime", gdje se podudara riječ za pretraživanje.

$ mačka korisnika.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Neispravno ime"); print 'korisnika.txt

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi. Riječ „nila“ postoji dva puta u 3. retku datoteke koja je u izlazu zamijenjena riječju „Neispravno ime“.

Primjer 8: Ispišite formatirani sadržaj iz datoteke razdvojene karticama

Sljedeća naredba "awk" ispisat će prvi i drugi stupac datoteke s oblikovanjem pomoću printf. Izlaz će prikazati ime korisnika dodavanjem adrese e-pošte u zagrade.

$ mačka korisnika.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' korisnika.txt

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi.

Zaključak

Bilo koja datoteka razdvojena karticama može se lako raščlaniti i ispisati s drugim graničnikom pomoću naredbe 'awk'. Načini raščlanjivanja datoteka razdvojenih karticama i ispisa u različitim formatima prikazani su u ovom vodiču na više primjera. Upotreba funkcija sub () i gsub () u naredbi 'awk' za zamjenu sadržaja datoteke razdvojene karticama također je objašnjena u ovom vodiču. Nadam se da će ovaj vodič pomoći čitateljima da lako raščlane datoteku razdvojenu karticama nakon što pravilno uvježbaju primjere ovog vodiča.

Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...
5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...