1 pavyzdys: iš komandų išvesties atspausdinkite stulpelių diapazoną
Ši komanda atspausdins antrą, trečią ir ketvirtą stulpelius iš komandos išvesties, 'ls -l". Čia stulpelių numeriai nurodomi aiškiai, tačiau kitame pavyzdyje parodyta efektyvesnė komanda spausdinti tą patį stulpelių diapazoną.
$ ls -l | awk 'print $ 2, $ 3, $ 4'Ši išvestis sukuriama aukščiau esančia komanda.
2 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami a dėl kilpa
Norėdami sekti šį pavyzdį ir kitus šios mokymo programos pavyzdžius, sukurkite tekstinį failą pavadinimu ženklų.txt turinį:
ID CSE203 CSE102 CSE2021109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Ši komanda „awk“ atspausdins pirmuosius tris ženklų stulpelius.txt. The dėl kilpa naudojama stulpelių reikšmėms spausdinti, o kilpa apima tris veiksmus. The NF kintamasis nurodo bendrą failo laukų ar stulpelių skaičių.
$ katės ženklai.txt$ awk 'už (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt
Ši išvestis bus sukurta paleidus komandą. Rezultatas rodo studentą Asmens tapatybės dokumentai ir ženklai CSE203 ir CSE102.
3 pavyzdys: išspausdinkite stulpelių diapazoną apibrėždami pradinius ir baigiamuosius kintamuosius
Ši komanda „awk“ atspausdins pirmuosius tris stulpelius iš komandos išvesties „ls -l“, inicijuodama pradedant ir pabaigos kintamieji. Čia vertė pradedant kintamasis yra 1, o reikšmė pabaigos kintamasis yra 3. Šie kintamieji kartojami „for“ cikle, kad būtų išspausdintos stulpelio vertės.
$ ls -l | awk 'BEGIN pirma = 1; paskutinis = 3už (i = pirmas; t < last; i++) printf("%s ", $i) print $last '
Paleidus komandą pasirodys toks išvestis. Išvestyje rodomos pirmosios trys išvesties stulpelių vertės „ls -l“.
4 pavyzdys: spausdinkite stulpelių diapazoną iš failo su formatavimu
Ši komanda „awk“ atspausdins pirmuosius tris ženklų.txt naudojant printf ir išvesties lauko separatorius (OFS). Čia „for loop“ apima tris veiksmus ir trys stulpeliai bus išspausdinti iš failo eilės tvarka. OFS čia naudojamas tarpams tarp stulpelių pridėti. Kai kilpos (i) skaitiklio vertė lygi pabaigos kintamasis, tada sukuriama nauja eilutė (\ n).
$ katės ženklai.txt$ awk -v pradžia = 1 -v pabaiga = 3 'už (i = pradžia; i<=end;i++) printf("%s%s",
$ i, (i == pabaiga) ? "\ n": OFS) 'ženklai.txt
Šis išėjimas bus sugeneruotas paleidus aukščiau nurodytas komandas.
5 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami sąlyginį sakinį
Ši komanda „awk“ išspausdins pirmąjį ir paskutinį failo stulpelius naudodami „for loop“ ir „if“ sakinius. Čia „for loop“ apima keturis žingsnius. The pradedant ir pabaigos kintamieji scenarijuje naudojami norint praleisti antrą ir trečią stulpelius iš failo naudojant sąlygą if. OFS kintamasis naudojamas tarpui tarp stulpelių pridėti, o ORS kintamasis naudojamas pridėti naują eilutę (\ n) atsispausdinus paskutinį stulpelį.
$ katės ženklai.txt$ awk -v pradžia = 2 -v pabaiga = 3 'už (i = 1; i<=NF;i++)
jei (i> = pradžia && i<=end) continue;
dar printf ("% s% s", $ i, (t!= NF) ? OFS: ORS) 'ženklai.txt
Paleidus minėtas komandas pasirodys toks išvestis. Išvestyje rodomi pirmieji ir paskutiniai ženklų stulpeliai.txt.
6 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami kintamąjį NF
Naudojant NF kintamąjį, komanda „awk“ išspausdins pirmąjį ir paskutinį failo stulpelius. Stulpelių reikšmėms spausdinti nenaudojamos jokios kilpos ar sąlyginiai teiginiai. NF nurodo laukų skaičių. Yra keturi stulpeliai ženklais.txt. $ (NF-3) apibrėžia pirmąjį stulpelį, o $ NF nurodo paskutinį stulpelį.
$ katės ženklai.txt$ awk 'print $ (NF-3) "" $ NF' ženklai.txt
Ši išvestis sukuriama vykdant minėtas komandas. Išvestyje rodomi pirmieji ir paskutiniai ženklų stulpeliai.txt.
7 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami substr () ir index ()
Funkcija index () grąžina poziciją, jei pirmosios argumento reikšmėje yra antroji argumento reikšmė. Funkcija substr () gali turėti tris argumentus. Pirmasis argumentas yra eilutės reikšmė, antrasis argumentas yra pradinė pozicija, o trečiasis argumentas yra ilgis. Trečiasis substr () argumentas praleidžiamas šioje komandoje. Kadangi komandos „awk“ stulpelis prasideda nuo $ 1, funkcija index () grąžins $ 3, o komanda spausdins nuo $ 3 iki $ 4.
$ katės ženklai.txt$ awk 'print substr ($ 0, index ($ 0, $ 3))' ženklai.txt
Ši išvestis bus sukurta vykdant minėtas komandas.
8 pavyzdys: Nuosekliai išspausdinkite stulpelių diapazoną iš failo naudodami „printf“
Ši komanda „awk“ atspausdins pirmąjį, antrąjį ir trečiąjį ženklų stulpelius.txt nustatydami pakankamai vietos 10 simbolių.
$ katės ženklai.txt$ awk '// printf "% 10s% 10s% 10s \ n", $ 1, $ 3, $ 2' ženklai.txt
Ši išvestis bus sukurta vykdant minėtas komandas.
Išvada
Yra daugybė būdų, kaip atspausdinti stulpelių diapazoną iš komandos išvesties ar failo. Ši pamoka parodo, kaip komanda „awk“ gali padėti „Linux“ vartotojams atsispausdinti turinį iš lentelių duomenų.