„Linux“ komanda „awk“ yra galingas įrankis įvairioms teksto failų operacijoms, tokioms kaip paieška, pakeitimas ir spausdinimas. Tai lengva naudoti su lentelės duomenimis, nes kiekviena eilutė automatiškai padalijama į laukus arba stulpelius, atsižvelgiant į laukų skyriklį. Kai dirbate su tekstiniu failu, kuriame yra lentelių duomenys, ir norite atspausdinti konkretaus stulpelio duomenis, tada geriausia parinktis yra „awk“. Šioje pamokoje parodysime, kaip atsispausdinti pirmąjį ir (arba) paskutinį eilutės ar teksto failo stulpelį.
Atspausdinkite pirmąjį ir (arba) paskutinį komandos išvesties stulpelį
Daugelis „Linux“ komandų, pvz., „Ls“ komanda, generuoja lentelių išvestis. Čia parodysime, kaip išspausdinti pirmąjį stulpelį ir (arba) paskutinį stulpelį iš komandos „ls -l“ išvesties.
1 pavyzdys: išspausdinkite pirmąjį komandos išvesties stulpelį
Ši komanda „awk“ atspausdins pirmąjį stulpelį iš komandos „ls -l“ išvesties.
$ ls -l$ ls -l | awk 'print $ 1'
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
2 pavyzdys: atsispausdinkite paskutinį komandos išvesties stulpelį
Ši komanda „awk“ atspausdins paskutinį stulpelį iš komandos „ls -l“ išvesties.
$ ls -l$ ls -l | awk 'print $ NF'
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
3 pavyzdys: išspausdinkite pirmąjį ir paskutinį komandos išvesties stulpelius
Ši komanda „awk“ atspausdins pirmąjį ir paskutinį stulpelius iš komandos „ls -l“ išvesties.
$ ls -l$ ls -l | awk 'print $ 1, $ NF'
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
Spausdinkite pirmąjį ir (arba) paskutinį teksto failo stulpelį
Čia parodysime, kaip naudoti komandą „awk“, norint atsispausdinti pirmąjį ir (arba) paskutinį teksto failo stulpelį.
Sukurkite tekstinį failą
Norėdami sekti šią mokymo programą, sukurkite tekstinį failą pavadinimu klientų.txt turinį. Faile yra trijų tipų klientų duomenys: vardas su ID, el. Paštas ir telefono numeris. Skirtuko simbolis (\ t) naudojamas šioms reikšmėms atskirti.
Vardas El. Paštas Telefonas„Jonathon Bing“ - 1001 [saugoma el. Paštu] 01967456323
Michealas Jacksonas - 2006 m. [Saugoma el. Paštu] 01756235643
Janifer Lopez - 3029 [saugoma el. Paštu] 01822347865
Jonas Abraomas - 4235 j [saugoma el. Paštu] 01590078452
Miras Sabbiras - 2756 [saugoma el. Paštu] 01189523978
4 pavyzdys: atsispausdinkite pirmąjį failo stulpelį nenaudodami lauko skyriklio
Jei komandoje „awk“ nenaudojamas joks lauko skyriklis, tarpas naudojamas kaip numatytasis lauko skyriklis. Ši komanda „awk“ išspausdins pirmąjį stulpelį naudodama numatytąjį separatorių.
$ kačių klientų.txt$ awk 'print $ 1' klientai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Atkreipkite dėmesį, kad išvestyje rodomas tik kliento vardas, nes tarpas naudojamas kaip lauko skyriklis. Šios problemos sprendimas parodytas kitame pavyzdyje.
5 pavyzdys: išspausdinkite pirmąjį failo stulpelį su skirikliu
Čia \ t naudojamas kaip lauko skyriklis pirmajam failo stulpeliui atsispausdinti. Parinktis „-F“ naudojama lauko separatoriui nustatyti.
$ kačių klientų.txt$ awk -F '\ t' 'print $ 1' klientai.txt
Ši išvestis bus sukurta paleidus minėtas komandas. Failo turinys yra padalintas į tris stulpelius pagal \ t. Todėl kliento vardas ir ID spausdinami kaip pirmasis stulpelis. Jei norite atspausdinti kliento vardą be ID, pereikite prie kito pavyzdžio.
Jei norite atspausdinti kliento vardą be identifikatoriaus, turite naudoti „-“ kaip lauko skyriklį. Ši komanda „awk“ kliento vardą atspausdins tik kaip pirmąjį stulpelį.
$ awk -F '-' 'print $ 1' klientai.txt
Ši išvestis bus sukurta paleidus minėtas komandas. Išvestyje pateikiami visi kliento vardai be jų ID.
6 pavyzdys: atsispausdinkite paskutinį failo stulpelį
Ši komanda „awk“ atspausdins paskutinį klientų stulpelį.txt. Kadangi komandoje nenaudojamas jokio lauko skyriklis, tarpas bus naudojamas kaip lauko skyriklis.
$ kačių klientų.txt$ awk 'print $ NF' klientai.txt
Ši išvestis bus sukurta paleidus minėtas komandas. Paskutiniame stulpelyje yra telefono numeriai, kaip parodyta išvestyje.
7 pavyzdys: atsispausdinkite pirmąjį ir paskutinį failo stulpelius
Ši komanda „awk“ atspausdins pirmąjį ir paskutinį klientų stulpelius.txt. Čia skirtukas (\ t) naudojamas kaip lauko skyriklis turinio dalijimui į stulpelius. Čia skirtukas (\ t) naudojamas kaip išvesties skyriklis.
$ kačių klientų.txt$ awk -F "\ t" 'print $ 1 "\ t" $ NF' klientai.txt
Paleidus minėtas komandas pasirodys toks išvestis. Turinį \ t išskirsto į tris stulpelius; pirmajame stulpelyje nurodomas kliento vardas ir ID, o antrame - telefono numeris. Pirmasis ir paskutinis stulpeliai spausdinami naudojant skiriklį \ t.
Išvada
„Awk“ komandą galima pritaikyti įvairiai, kad gautumėte pirmąjį ir (arba) paskutinį stulpelius iš bet kurios komandos išvesties arba iš lentelių duomenų. Svarbu atkreipti dėmesį į tai, kad komandoje reikalingas lauko skyriklis, o jei jo nėra, tada naudojama erdvė.