Awk

Kā izdrukāt kolonnu diapazonu, izmantojot komandu 'awk'

Kā izdrukāt kolonnu diapazonu, izmantojot komandu 'awk'
Komanda 'awk' ir viena no daudzajām komandām, ko var izmantot, lai no tabulas datiem Linux izdrukātu kolonnu diapazonu. Komandu “awk” var izmantot tieši no termināla, izpildot skripta failu “awk”. Šajā apmācībā mēs parādīsim, kā no tabulas datiem izdrukāt kolonnu diapazonu.

1. piemērs: Izdrukājiet kolonnu diapazonu no komandas izvades

Šī komanda izdrukās otro, trešo un ceturto kolonnu no komandas izvades, 'ls -l". Kolonnu numuri ir skaidri norādīti, bet nākamajā piemērā ir parādīta efektīvāka komanda viena un tā paša kolonnu diapazona drukāšanai.

$ ls -l | awk 'print $ 2, $ 3, $ 4'

Ar iepriekš minēto komandu tiek izveidota šāda izeja.

2. piemērs: Izdrukājiet kolonnu diapazonu no faila, izmantojot a priekš cilpa

Lai sekotu šim un citiem šīs apmācības piemēriem, izveidojiet teksta failu ar nosaukumu zīmes.txt ar šādu saturu:

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

Ar šādu komandu “awk” tiks izdrukātas pirmās trīs atzīmju kolonnas.txt. The priekš cilpa tiek izmantota kolonnu vērtību drukāšanai, un cilpa ietver trīs darbības. The NF mainīgais norāda faila lauku vai kolonnu kopējo skaitu.

$ kaķu zīmes.txt
$ awk 'par (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt

Izpildot komandu, tiks izveidota šāda izeja. Rezultātā parādīts students ID un atzīmes CSE203 un CSE102.

3. piemērs: Izdrukājiet kolonnu diapazonu, definējot sākuma un beigu mainīgos

Šāda komanda “awk” izdrukās pirmās trīs kolonnas no komandas izvades “ls -l”, inicializējot sākot un beidzas mainīgie. Šeit vērtība sākot mainīgais ir 1, un vērtība beidzas mainīgais ir 3. Šie mainīgie tiek atkārtoti ciklā for for kolonnas vērtību drukāšanai.

$ ls -l | awk 'SĀKT pirmais = 1; pēdējais = 3
par (i = pirmais; i < last; i++) printf("%s ", $i) print $last '

Pēc komandas palaišanas parādīsies šāda izeja. Izvade parāda izejas pirmās trīs kolonnu vērtības “ls -l”.

4. piemērs: Izdrukājiet kolonnu diapazonu no faila ar formatējumu

Ar šādu komandu awk tiks izdrukātas pirmās trīs kolonnas zīmes.txt izmantojot printf un izvades lauka atdalītājs (OFS). Šeit for cikls ietver trīs darbības, un no faila secīgi tiks drukātas trīs kolonnas. OFS šeit tiek izmantots, lai pievienotu atstarpi starp kolonnām. Kad cilpas (i) skaitītāja vērtība ir vienāda ar beidzas mainīgais, tad tiek ģenerēta jauna rinda (\ n).

$ kaķu zīmes.txt
$ awk -v sākums = 1 -v beigas = 3 'par (i = sākums; i<=end;i++) printf("%s%s",
$ i, (i == beigas) ? "\ n": OFS) 'atzīmes.txt

Pēc iepriekš minēto komandu izpildīšanas tiks ģenerēta šāda izeja.

5. piemērs: Izdrukājiet kolonnu diapazonu no faila, izmantojot nosacījuma paziņojumu

Šāda komanda “awk” izdrukās faila pirmo un pēdējo kolonnu, izmantojot for ciklu un if paziņojumu. Šeit for for ietver četrus soļus. The sākot un beidzas mainīgie tiek izmantoti skriptā, lai no faila izlaistu otro un trešo kolonnu, izmantojot nosacījumu if. Mainīgais OFS tiek izmantots, lai pievienotu atstarpi starp kolonnām, un ORS mainīgais tiek izmantots, lai pievienotu jaunu rindu (\ n) pēc pēdējās kolonnas izdrukāšanas.

$ kaķu zīmes.txt
$ awk -v sākums = 2 -v beigas = 3 'par (i = 1; i<=NF;i++)
ja (i> = sākums && i<=end) continue;
else printf ("% s% s", $ i, (i!= NF) ? OFS: ORS) 'atzīmes.txt

Pēc iepriekš minēto komandu izpildīšanas parādīsies šāda izeja. Rezultātā tiek parādīta pirmā un pēdējā atzīmju kolonna.txt.

6. piemērs: Izdrukājiet kolonnu diapazonu no faila, izmantojot mainīgo NF

Ar komandu “awk” tiks izdrukāta faila pirmā un pēdējā kolonna, izmantojot NF mainīgo. Kolonnu vērtību drukāšanai netiek izmantotas cilpas vai nosacījumi. NF norāda lauku skaitu. Zīmēs ir četras kolonnas.txt. $ (NF-3) definē pirmo kolonnu, un $ NF norāda pēdējo kolonnu.

$ kaķu zīmes.txt
$ awk 'print $ (NF-3) "" $ NF' atzīmes.txt

Veicot iepriekš minētās komandas, tiek izveidota šāda izeja. Rezultātā tiek parādīta pirmā un pēdējā atzīmju kolonna.txt.

7. piemērs: Izdrukājiet kolonnu diapazonu no faila, izmantojot substr () un index ()

Funkcija index () atgriež pozīciju, ja otrā argumenta vērtība pastāv pirmajā argumenta vērtībā. Funkcijai substr () var būt trīs argumenti. Pirmais arguments ir virknes vērtība, otrais arguments ir sākuma stāvoklis, bet trešais arguments ir garums. Trešais substr () arguments šajā komandā tiek izlaists. Tā kā kolonnā “awk” sākas no $ 1, funkcija index () atgriezīs $ 3, un komanda drukās no $ 3 līdz $ 4.

$ kaķu zīmes.txt
$ awk 'print substr ($ 0, index ($ 0, $ 3))' atzīmes.txt

Izpildot iepriekš minētās komandas, tiks izveidota šāda izeja.

8. piemērs: secīgi izdrukājiet kolonnu diapazonu no faila, izmantojot printf

Šāda komanda “awk” izdrukās zīmju pirmo, otro un trešo kolonnu.txt, nosakot pietiekami daudz vietas 10 rakstzīmēm.

$ kaķu zīmes.txt
$ awk '// printf "% 10s% 10s% 10s \ n", $ 1, $ 3, $ 2' atzīmes.txt

Izpildot iepriekš minētās komandas, tiks izveidota šāda izeja.

Secinājums

Kolonnu diapazonu var izdrukāt no komandas izvades vai faila dažādos veidos. Šī apmācība parāda, kā komanda “awk” var palīdzēt Linux lietotājiem izdrukāt saturu no tabulas datiem.

Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...