Ahoj

Ako tlačiť rozsah stĺpcov pomocou príkazu 'awk'

Ako tlačiť rozsah stĺpcov pomocou príkazu 'awk'
Príkaz 'awk' je jedným z mnohých príkazov, ktoré možno použiť na tlač mnohých stĺpcov z tabuľkových údajov v systéme Linux. Príkaz „awk“ je možné použiť priamo z terminálu vykonaním súboru skriptu „awk“. V tomto návode si ukážeme, ako tlačiť celý rad stĺpcov z tabuľkových údajov.

Príklad 1: Tlač rozsahu stĺpcov z výstupu príkazu

Nasledujúci príkaz vytlačí druhý, tretí a štvrtý stĺpec z výstupu príkazu, je -l„. Tu sú čísla stĺpcov uvedené výslovne, ale efektívnejší príkaz na tlač rovnakého rozsahu stĺpcov je uvedený v nasledujúcom príklade.

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

Nasledujúci výstup je produkovaný vyššie uvedeným príkazom.

Príklad 2: Vytlačte rozsah stĺpcov zo súboru pomocou a pre slučka

Ak chcete pokračovať v tomto príklade a ďalších príkladoch v tomto návode, vytvorte textový súbor s názvom známok.TXT s nasledujúcim obsahom:

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

Nasledujúci príkaz „awk“ vytlačí prvé tri stĺpce značiek.TXT. The pre cyklus sa používa na tlač hodnôt stĺpca a cyklus obsahuje tri kroky. The NF premenná udáva celkový počet polí alebo stĺpcov súboru.

$ mačacie značky.TXT
$ awk 'pre (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt

Nasledujúci výstup sa vytvorí spustením príkazu. Výstup ukazuje študenta ID a značky pre CSE203 a CSE102.

Príklad 3: Vytlačte rozsah stĺpcov definovaním počiatočných a koncových premenných

Nasledujúci príkaz 'awk' vytlačí prvé tri stĺpce z výstupu príkazu 'ls -l' inicializáciou počnúc a končiaci premenné. Tu je hodnota počnúc premenná je 1 a hodnota končiaci premenná je 3. Tieto premenné sa iterujú v cykle for, aby sa vytlačili hodnoty stĺpcov.

$ ls -l | awk 'BEGIN first = 1; posledný = 3
for (i = prvý; i < last; i++) printf("%s ", $i) print $last '

Po spustení príkazu sa objaví nasledujúci výstup. Výstup zobrazuje prvé tri hodnoty stĺpca výstupu, 'ls -l'.

Príklad 4: Vytlačte rozsah stĺpcov zo súboru s formátovaním

Nasledujúci príkaz „awk“ vytlačí prvé tri stĺpce súboru známok.TXT použitím printf a oddeľovač výstupného poľa (OFS). Tu cyklus for obsahuje tri kroky a zo súboru sa vytlačia postupne tri stĺpce. OFS sa tu používa na pridanie medzery medzi stĺpcami. Keď sa hodnota počítadla slučky (i) rovná končiaci premenná, potom sa vygeneruje nový riadok (\ n).

$ mačacie značky.TXT
$ awk -v štart = 1 -v koniec = 3 'pre (i = štart; i<=end;i++) printf("%s%s",
$ i, (i == koniec) ? Znaky „\ n“: OFS) '.TXT

Po vykonaní vyššie uvedených príkazov sa vygeneruje nasledujúci výstup.

Príklad 5: Vytlačte rozsah stĺpcov zo súboru pomocou podmieneného príkazu

Nasledujúci príkaz „awk“ vytlačí prvý a posledný stĺpec zo súboru pomocou príkazov for a loop. Tu obsahuje slučka for štyri kroky. The počnúc a končiaci premenné sa používajú v skripte na vynechanie druhého a tretieho stĺpca zo súboru pomocou podmienky if. Premenná OFS sa používa na pridanie medzery medzi stĺpce a premenná ORS na pridanie nového riadku (\ n) po vytlačení posledného stĺpca.

$ mačacie značky.TXT
$ awk -v štart = 2 -v koniec = 3 'pre (i = 1; i<=NF;i++)
if (i> = štart && i<=end) continue;
else printf ("% s% s", $ i, (i!= NF) ? OFS: ORS) '.TXT

Po vykonaní vyššie uvedených príkazov sa objaví nasledujúci výstup. Výstup zobrazuje prvý a posledný stĺpec značiek.TXT.

Príklad 6: Vytlačte rozsah stĺpcov zo súboru pomocou premennej NF

Nasledujúci príkaz „awk“ vytlačí prvý a posledný stĺpec zo súboru pomocou premennej NF. Na tlač hodnôt stĺpcov sa nepoužívajú žiadne slučky ani podmienené príkazy. NF označuje počet polí. V značkách sú štyri stĺpce.TXT. $ (NF-3) definuje prvý stĺpec a $ NF označuje posledný stĺpec.

$ mačacie značky.TXT
Značky $ awk 'print $ (NF-3) "" $ NF'.TXT

Nasledujúci výstup sa vytvorí spustením vyššie uvedených príkazov. Výstup zobrazuje prvý a posledný stĺpec značiek.TXT.

Príklad 7: Tlač rozsahu stĺpcov zo súboru pomocou substr () a index ()

Funkcia index () vráti pozíciu, ak existuje druhá hodnota argumentu v prvej argumentovej hodnote. Funkcia substr () môže mať tri argumenty. Prvý argument je hodnota reťazca, druhý argument je východisková pozícia a tretím argumentom je dĺžka. Tretí argument substr () je v nasledujúcom príkaze vynechaný. Pretože stĺpec začína od $ 1 v príkaze 'awk', funkcia index () vráti $ 3 a príkaz vytlačí od $ 3 do $ 4.

$ mačacie značky.TXT
Značky $ awk 'print substr ($ 0, index ($ 0, $ 3))'.TXT

Nasledujúci výstup sa vytvorí spustením vyššie uvedených príkazov.

Príklad 8: Postupne vytlačte rozsah stĺpcov zo súboru pomocou printf

Nasledujúci príkaz „awk“ vytlačí prvý, druhý a tretí stĺpec značiek.txt nastavením dostatočného priestoru pre 10 znakov.

$ mačacie značky.TXT
$ awk '// printf "% 10s% 10s% 10s \ n", $ 1, $ 3, $ 2' známky.TXT

Nasledujúci výstup sa vytvorí spustením vyššie uvedených príkazov.

Záver

Existuje niekoľko spôsobov, ako tlačiť rozsah stĺpcov z výstupu príkazu alebo zo súboru. Tento tutoriál ukazuje, ako môže príkaz „awk“ pomôcť používateľom systému Linux tlačiť obsah z tabuľkových údajov.

Tlačidlo ľavého kliknutia myši nefunguje v systéme Windows 10
Ak používate samostatnú myš s prenosným počítačom alebo stolovým počítačom, ale nefunguje ľavé tlačidlo myši vo Windows 10/8/7 z nejakého dôvodu uvádz...
Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...