Ärme

Tabeldatud faili sõelumine 'awk' abil

Tabeldatud faili sõelumine 'awk' abil

Vahekaartidega eraldatud failis kasutatakse eraldajat 'sakk'. Seda tüüpi tekstifail on loodud mitmesuguste tekstiandmete struktureeritud vormingus salvestamiseks.  Seda tüüpi failide sõelumiseks on Linuxis olemas erinevat tüüpi käsud.  'awk' on üks viise tabulaatoriga eraldatud faili erineval viisil sõelumiseks. Selles õpetuses on näidatud käsu 'awk' kasutamine sakkidega eraldatud faili lugemiseks.

Looge tabulaatoriga eraldatud fail:

Looge nimega tekstifail kasutajad.txt järgmise sisuga selle õpetuse käskude testimiseks. See fail sisaldab kasutaja nime, e-posti aadressi, kasutajanime ja parooli.

kasutajad.txt

Nimi E-posti kasutajanimi Parool
Md. Robin [meiliga kaitstud] robin89 563425
Nila Hasan [meiliga kaitstud] nila78 245667
Mirza Abbas [meiliga kaitstud] mirza23 534788
Aornob Hasan [meiliga kaitstud] arnob45 778473
Nuhas Ahsan [meiliga kaitstud] nuhas34 563452

Näide 1: printige sakkidega eraldatud faili teine ​​veerg, kasutades suvandit -F

Järgmine käsk 'sed' prindib tabulaatoriga eraldatud tekstifaili teise veeru. Siin, "-F" Valikut kasutatakse faili väljaeraldaja määramiseks.

$ kassi kasutajad.txt
$ awk -F '\ t' 'print $ 2' kasutajad.txt

Pärast käskude käivitamist ilmub järgmine väljund. Faili teine ​​veerg sisaldab kasutaja e-posti aadresse, mis kuvatakse väljundina.

Näide 2: printige tabulaatoriga eraldatud faili esimene veerg muutuja FS abil

Järgmine käsk 'sed' prindib tabulaatoriga eraldatud tekstifaili esimese veeru. Siin, FS Muutujat (Field Separator) kasutatakse faili väljaeraldaja määramiseks.

$ kassi kasutajad.txt
$ awk 'print $ 1' FS = '\ t' kasutajad.txt

Pärast käskude käivitamist ilmub järgmine väljund. Faili esimene veerg sisaldab kasutaja nimesid, mis kuvatakse väljundina.

Näide 3: printige vahelehega piiritletud faili kolmas veerg koos vormindusega

Järgmine käsk 'sed' printib tabeldatud tekstifaili kolmanda veeru vormindusega, kasutades FS muutuja ja printf. Siin, FS muutujat kasutatakse faili väljaeraldaja määramiseks.

$ kassi kasutajad.txt
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3 kasutajat.txt

Pärast käskude käivitamist ilmub järgmine väljund. Faili kolmas veerg sisaldab siin trükitud kasutajanime.

Näide 4: printige vahelehtedega eraldatud faili kolmas ja neljas veerg OFS-i abil

OFS (Output Field Separator) kasutatakse väljundisse välja eraldaja lisamiseks. Järgmine käsk awk jagab faili sisu vahekaardi (\ t) eraldaja põhjal ja printib 3. ja 4. veeru, kasutades eraldajana vahekaarti (\ t).

$ kassi kasutajad.txt
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("väljund.txt ") 'kasutajad.txt
$ kassi väljund.txt

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund. 3. ja 4. veerg sisaldavad siin trükitud kasutajanime ja parooli.

Näide 5: asendage tabulaatoriga eraldatud faili konkreetne sisu

sub () funktsiooni kasutatakse asenduses käskimiseks 'awk. Järgmine käsk awk otsib numbrit 45 ja asendab numbriga 90, kui failis on otsingu number. Pärast asendamist salvestatakse faili sisu väljundisse.txt-fail.

$ kassi kasutajad.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' kasutajad.txt> väljund.txt
$ kassi väljund.txt

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund. Väljund.txt-fail näitab muudetud sisu pärast asenduse rakendamist. Siin on 5. rea sisu muudetud ja 'arnob45' muudetakse väärtuseks 'arnob90'.

Näide 6: lisage string tabulaatoriga eraldatud faili iga rea ​​algusesse

Järgnevalt kasutatakse käsku 'awk', valikut '-F', et jagada faili sisu vahelehe põhjal (\ t). OFS on lisanud väljundisse välja eraldajana koma (,). funktsiooni sub () kasutatakse stringi '- →' lisamiseks väljundi iga rea ​​algusesse.

$ kassi kasutajad.txt
$ awk -F "\ t" 'OFS = ","; sub (/ ^ /, "---->"); print $ 1, $ 2, $ 3' kasutajad.txt

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund. Iga välja väärtus on eraldatud komaga (,) ja iga rea ​​algusesse lisatakse string.

Näide 7: asendage tabulaatoriga eraldatud faili väärtus funktsiooni gsub () abil

Funktsiooni gsub () kasutatakse globaalse asendamise käsus 'awk'. Kõik faili stringiväärtused asendavad koha, kus otsingu muster sobib. Peamine erinevus funktsioonide sub () ja gsub () vahel seisneb selles, et sub () funktsioon peatab asendusülesande pärast esimese vaste leidmist ja funktsioon gsub () otsib faili lõpus olevat mustrit asendamiseks. Järgmine käsk awk otsib failis sõna „nila” ja „Mira” ning asendab kõik esinemised tekstiga „Vale nimi”, kus otsitav sõna sobib.

$ kassi kasutajad.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Vale nimi"); print 'kasutajad.txt

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund. Sõna 'nila' eksisteerib faili 3. real kaks korda, mis on väljundis asendatud sõnaga 'Invalid Name'.

8. näide: vormindatud sisu printimine sakkidega eraldatud failist

Järgmine käsk 'awk' printib faili esimese ja teise veeru koos vormindusega printf abil. Väljund näitab kasutaja nime, lisades sulgudesse e-posti aadressi.

$ kassi kasutajad.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' kasutajat.txt

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.

Järeldus

Kõiki sakkidega eraldatud faile saab käsu 'awk' abil hõlpsasti sõeluda ja printida teise eraldajaga. Vahekaartidega eraldatud failide sõelumise ja erinevas vormingus printimise viisid on selles õpetuses näidatud mitme näite abil. Funktsioonide sub () ja gsub () kasutamist käskudes 'awk' vahekaardiga eraldatud faili sisu asendamiseks selgitatakse ka selles õpetuses. Loodan, et see õpetus aitab lugejatel pärast selle õpetuse näidete nõuetekohast harjutamist tabeldatud failidega hõlpsalt sõeluda.

Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...
Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...
Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...