Awk

Kaip išanalizuoti tabuliavimo ženklu atskirtą failą naudojant „awk“

Kaip išanalizuoti tabuliavimo ženklu atskirtą failą naudojant „awk“

Skirtukais atskirtame faile 'tab' naudojamas kaip atskyriklis. Šio tipo tekstiniai failai yra sukurti saugoti įvairių tipų tekstinius duomenis struktūriniu formatu.  Norint išanalizuoti tokio tipo failus, sistemoje „Linux“ yra skirtingų tipų komandų.  „awk“ komanda yra vienas iš būdų, kaip analizuoti skirtukais atskirtą failą skirtingais būdais. Komandos „awk“ naudojimas, norint perskaityti tabuliatoriais atskirtą failą, parodytas šioje pamokoje.

Sukurkite failą, kurį skiria skirtukai:

Sukurkite tekstinį failą pavadinimu vartotojų.txt turinį, kad patikrintumėte šios mokymo programos komandas. Šiame faile yra vartotojo vardas, el. Pašto adresas, vartotojo vardas ir slaptažodis.

vartotojų.txt

Vardas El. Paštas Vartotojo vardas Slaptažodis
Md. Robinas [apsaugotas el. Paštu] robin89 563425
Nila Hasan [saugoma el. Paštu] nila78 245667
Mirza Abbas [saugoma el. Paštu] mirza23 534788
Aornobas Hasanas [saugoma el. Paštu] arnob45 778473
Nuhas Ahsan [el. Pašto saugomas] nuhas34 563452

1 pavyzdys: naudodami parinktį -F atspausdinkite antrąjį failo, pažymėto skirtuku, stulpelį

Ši „sed“ komanda atspausdins antrąjį tabuliavimo ženklu atskirto teksto failo stulpelį. Čia, „-F“ Parinktis naudojama apibrėžti failo lauko skyriklį.

$ kačių vartotojai.txt
$ awk -F '\ t' 'print $ 2' vartotojai.txt

Paleidus komandas pasirodys toks išėjimas. Antrame failo stulpelyje yra vartotojo el. Pašto adresai, kurie rodomi kaip išvestis.

2 pavyzdys: naudodami FS kintamąjį išspausdinkite pirmąjį tabuliavimo ženklu atskirtos bylos stulpelį

Ši „sed“ komanda išspausdins pirmąjį tabuliavimo ženklu atskirto teksto failo stulpelį. Čia, FS Kintamasis (Field Separator) naudojamas failo lauko separatoriui apibrėžti.

$ katės vartotojai.txt
$ awk 'print $ 1' FS = '\ t' vartotojai.txt

Paleidus komandas pasirodys toks išėjimas. Pirmajame failo stulpelyje yra vartotojo vardai, kurie rodomi kaip išvestis.

3 pavyzdys: atspausdinkite trečią skirtuko ribų failo stulpelį su formatavimu

Ši „sed“ komanda atspausdins trečią tabuliavimo ženklu atskirto teksto failo stulpelį su formatavimu naudodama FS kintamasis ir printf. Čia, FS kintamasis naudojamas apibrėžti failo lauko separatorių.

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

Paleidus komandas pasirodys toks išėjimas. Trečiame failo stulpelyje yra čia atspausdintas vartotojo vardas.

4 pavyzdys: naudodami OFS, atspausdinkite trečiąjį ir ketvirtąjį skirtukų atriboto failo stulpelius

OFS (Output Field Separator) naudojamas laukų separatoriui pridėti prie išvesties. Ši komanda „awk“ padalins failo turinį pagal skirtuko (\ t) skyriklį ir išspausdins 3 ir 4 stulpelius naudodama skirtuką (\ t) kaip atskyriklį.

$ kačių vartotojai.txt
$ awk -F "\ t" 'OFS = "\ t" spausdinti $ 3, $ 4> ("išvestis.txt ") 'vartotojai.txt
$ katės produkcija.txt

Paleidus minėtas komandas pasirodys toks išvestis. 3 ir 4 stulpeliuose yra vartotojo vardas ir slaptažodis, kurie buvo atspausdinti čia.

5 pavyzdys: pakeiskite konkretų skirtuko ribų failo turinį

sub () funkcija naudojama 'awk komandai pakeisti. Ši komanda „awk“ ieškos skaičiaus 45 ir pakeis skaičių 90, jei ieškos numeris yra faile. Po pakeitimo failo turinys bus saugomas išvestyje.txt failas.

$ katės vartotojai.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' vartotojai.txt> išvestis.txt
$ katės produkcija.txt

Paleidus minėtas komandas pasirodys toks išvestis. Rezultatas.txt failas rodo pakeistą turinį pritaikius pakaitalą. Čia pasikeitė 5-osios eilutės turinys ir „arnob45“ pakeista į „arnob90“.

6 pavyzdys: pridėkite eilutę kiekvienos eilutės pradžioje su skirtuku atskirtame faile

Toliau komanda „awk“, parinktis „-F“ naudojama failo turiniui padalyti pagal skirtuką (\ t). OFS išvestyje kablelį (,) naudojo kaip lauko skyriklį. sub () funkcija naudojama eilutei „- →“ pridėti kiekvienos išvesties eilutės pradžioje.

$ kačių vartotojai.txt
$ awk -F "\ t" 'OFS = ","; sub (/ ^ /, "---->"); spausdinti $ 1, $ 2, $ 3 vartotojus.txt

Paleidus minėtas komandas pasirodys toks išvestis. Kiekviena lauko reikšmė atskiriama kableliais (,) ir kiekvienos eilutės pradžioje pridedama eilutė.

7 pavyzdys: pakeiskite tabuliacijos ženklu atskirto failo vertę naudodami funkciją gsub ()

Funkcija gsub () naudojama komandai 'awk' visuotiniam pakeitimui. Visos failo eilutės reikšmės pakeis vietą, kurioje ieškos modelis atitinka. Pagrindinis skirtumas tarp funkcijų sub () ir gsub () yra tas, kad sub () funkcija sustabdo pakeitimo užduotį radus pirmąją atitiktį, o funkcija gsub () ieško failo gale esančio modelio, kad būtų galima pakeisti. Ši komanda „awk“ ieškos žodžio „nila“ ir „Mira“ visame faile ir visus įvykius pakeis tekstu „Neteisingas vardas“, kur ieškomas žodis sutampa.

$ kačių vartotojai.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Netinkamas vardas"); spausdinti vartotojai.txt

Paleidus minėtas komandas pasirodys toks išvestis. Žodis „nila“ egzistuoja du kartus 3-oje failo eilutėje, kuris išvestyje buvo pakeistas žodžiu „Neteisingas vardas“.

8 pavyzdys: išspausdinkite suformatuotą turinį iš skirtuko atriboto failo

Ši komanda „awk“ naudodama „printf“ išspausdins pirmąjį ir antrąjį failo stulpelius su formatavimu. Išvestyje bus rodomas vartotojo vardas, skliausteliuose pridedant el. Pašto adresą.

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

Paleidus minėtas komandas pasirodys toks išvestis.

Išvada

Bet kurį tabuliatorių atskirtą failą galima lengvai išanalizuoti ir atspausdinti kitu skirikliu, naudojant komandą „awk“. Skirtukais atskirtų failų analizavimo ir spausdinimo skirtingais formatais būdai parodyti šioje pamokoje naudojant kelis pavyzdžius. Sub () ir gsub () funkcijų naudojimas komandoje „awk“, norint pakeisti tabuliavimo atriboto failo turinį, taip pat paaiškinamas šioje pamokoje. Tikiuosi, kad ši mokomoji medžiaga padės skaitytojams lengvai išanalizuoti skirtukų atribotą failą, tinkamai praktikuojant šios pamokos pavyzdžius.

Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...
Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...