Kaip spausdinti stulpelių diapazoną naudojant komandą „awk“

How Print Range Columns Using Awk Command



Komanda „awk“ yra viena iš daugelio komandų, kuriomis galima spausdinti daugybę stulpelių iš lentelės duomenų „Linux“. Komanda „awk“ gali būti naudojama tiesiogiai iš terminalo, vykdant „awk“ scenarijaus failą. Šioje pamokoje parodysime, kaip iš lentelės duomenų atspausdinti stulpelių diapazoną.

1 pavyzdys: Iš komandų išvesties atspausdinkite stulpelių diapazoną

Ši komanda išspausdins antrą, trečią ir ketvirtą stulpelius iš komandos išvesties, „Ls -l ‘. Čia aiškiai nurodyti stulpelių numeriai, tačiau tolesniame pavyzdyje pateikiama efektyvesnė to paties stulpelių diapazono spausdinimo komanda.





$ls -jie | awk „{print $ 2, $ 3, $ 4}“

Ši išvestis gaunama naudojant aukščiau pateiktą komandą.





2 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami dėl kilpa

Norėdami sekti šį pavyzdį ir kitus šios pamokos pavyzdžius, sukurkite teksto failą pavadinimu marks.txt su tokiu turiniu :





ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 m 56 61 69
1156 89 55 78
199 54 66 58

Ši komanda „awk“ spausdins pirmuosius tris „marks.txt“ stulpelius. The dėl kilpa naudojama stulpelių reikšmėms spausdinti, o ciklas apima tris veiksmus. The NF kintamasis nurodo bendrą failo laukų ar stulpelių skaičių.

$katėmarks.txt
$awk „{už (i = 1; t<=NF-1;i++) printf $i' '; print ''}'marks.txt

Ši išvestis bus pagaminta vykdant komandą. Rezultatas rodo studentą ID ir ženklai už CSE203 ir CSE102 .



3 pavyzdys: išspausdinkite stulpelių diapazoną, apibrėždami pradžios ir pabaigos kintamuosius

Ši „awk“ komanda atspausdins pirmuosius tris stulpelius iš komandos išvesties „ls -l“, inicijuodama pradedant ir baigiantis kintamieji. Čia vertė pradedant kintamasis yra 1, o reikšmė baigiantis kintamasis yra 3. Šie kintamieji kartojami cikle, kad būtų išspausdintos stulpelio vertės.

$ls -jie | awk 'BEGIN {pirmas = 1; paskutinis = 3}
{už (i = pirmas; i

Paleidus komandą pasirodys ši išvestis. Išvestyje rodomos pirmosios trys išvesties stulpelio reikšmės „ls -l“.

4 pavyzdys: Spausdinkite stulpelių diapazoną iš failo su formatavimu

Ši komanda „awk“ spausdins pirmuosius tris stulpelius marks.txt naudojant printf ir išvesties laukų separatorius ( OFS ). Čia ciklą for sudaro trys veiksmai, o trys stulpeliai bus išspausdinti iš eilės iš failo. OFS čia naudojamas tarpams tarp stulpelių pridėti. Kai kilpos (i) skaitiklio vertė yra lygi baigiantis kintamasis, tada sukuriama nauja eilutė ( n).

$katėmarks.txt
$awk -v pradėti=1 -v galas=3 „{už (i = pradžia; i<=end;i++) printf('%s%s',
$ i, (i == pabaiga)? ' n': OFS)} '
marks.txt

Ši išvestis bus sukurta paleidus aukščiau pateiktas komandas.

5 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami sąlyginį teiginį

Ši komanda „awk“ išspausdins pirmąjį ir paskutinį failo stulpelius naudodami for ciklą ir if. Čia „for“ kilpa apima keturis veiksmus. The pradedant ir baigiantis kintamieji scenarijuje naudojami norint praleisti antrus ir trečius stulpelius iš failo naudojant sąlygą „if“. Kintamasis OFS naudojamas tarpui tarp stulpelių pridėti, o ORS kintamasis - naujai eilutei ( n) pridėti po paskutinio stulpelio spausdinimo.

$katėmarks.txt
$awk -v pradėti=2 -v galas=3 „{už (i = 1; t<=NF;i++)
if (i> = pradėti && i<=end) continue;
else printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} '
marks.txt

Paleidus aukščiau pateiktas komandas, pasirodys ši išvestis. Išvestyje rodomas pirmasis ir paskutinis „marks.txt“ stulpeliai.

6 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami kintamąjį NF

Ši komanda „awk“ spausdins pirmąjį ir paskutinį failo stulpelius naudodami NF kintamąjį. Stulpelio reikšmėms spausdinti nenaudojamos kilpos ar sąlyginiai teiginiai. NF nurodo laukų skaičių. „Mark.txt“ yra keturi stulpeliai. $ (NF-3) apibrėžia pirmąjį stulpelį, o $ NF-paskutinį stulpelį.

$katėmarks.txt
$awk '{print $ (NF-3)' '$ NF}'marks.txt

Ši išvestis gaunama vykdant aukščiau pateiktas komandas. Išvestyje rodomas pirmasis ir paskutinis „marks.txt“ stulpeliai.

7 pavyzdys: Spausdinkite stulpelių diapazoną iš failo naudodami substr () ir index ()

Funkcija indeksas () grąžina poziciją, jei antroji argumento reikšmė yra pirmoje argumento vertėje. Funkcija substr () gali turėti tris argumentus. Pirmasis argumentas yra eilutės reikšmė, antrasis - pradinė padėtis, o trečiasis - ilgis. Trečiasis substr () argumentas šioje komandoje praleistas. Kadangi stulpelis prasideda nuo 1 USD komandoje „awk“, indekso () funkcija grąžins 3 USD, o komanda atspausdins nuo 3 USD iki 4 USD.

$katėmarks.txt
$awk '{print substr ($ 0, index ($ 0, $ 3))}'marks.txt

Ši išvestis bus pagaminta vykdant aukščiau pateiktas komandas.

8 pavyzdys: nuosekliai spausdinkite stulpelių diapazoną iš failo naudodami printf

Ši „awk“ komanda išspausdins pirmąjį, antrąjį ir trečiąjį „marks.txt“ stulpelius, nustatydama pakankamai vietos 10 simbolių.

$katėmarks.txt
$awk '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'marks.txt

Ši išvestis bus pagaminta vykdant aukščiau pateiktas komandas.

Išvada

Yra įvairių būdų spausdinti stulpelių diapazoną iš komandos išvesties arba failo. Ši pamoka parodo, kaip komanda „awk“ gali padėti „Linux“ vartotojams spausdinti turinį iš lentelės duomenų.