Mokhoa oa ho ngola Melao ea AWK le Li-Scripts

Litaelo, li-syntax, le mehlala

Taelo ea awk ke mokhoa o matla oa ho ntlafatsa kapa ho hlahloba lifaele tsa mongolo-haholo-holo, lifaele tsa data tse hlophisitsoeng ka mela (mela) le mela.

Melao e bonolo ea awk e ka matha ho tloha molaong oa taelo . Mesebetsi e rarahaneng e lokela ho ngoloa e le mananeo a awk (a bitsoang awk scripts) ho faele.

Mofuta oa motheo oa taelo ea awk o shebahala tjena:

'sekhetho sa' {action} 'input-file> sehlahisoa-file

Sena se bolela: nka mola o mong le o mong oa faele ea ho kenya; haeba mola o na le mohlala ona o sebetsanang le ketso ho ea molaong ebe o ngola molaetsa o hlahisoang ho o hlahisa-file. Haeba mohlala o sa lumelloe, ketso ena e sebelisoa hohle. Ka mohlala:

hk '{print $ 5}' table1.txt> output1.txt

Polelo ena e nka karolo ea karolo ea bobeli ea mola o mong le o mong ebe oa e ngola e le mola o hlahang ho "output.txt". E feto-fetohileng '$ 4' e bolela khoeli ea bobeli. Ka ho tšoanang o ka fihlella molaleng oa pele, oa bobeli, le oa boraro, o nang le $ 1, $ 2, $ 3, joalo-joalo. Ho nahanoa hore li-columns li sa arohane ka libaka kapa litab Kahoo, haeba faele ea ho kenya "table1.txt" e na le mela ena:

1, Justin Timberlake, Sehlooho sa 545, Theko ea $ 7.30 2, Taylor Swift, Sehlooho sa 723, Theko ea $ 7,90 3, Mick Jagger, Sehlooho 610, Theko ea $ 7,90 4, Lady Gaga, Sehlooho 118, Theko ea $ 7.30 5, Johnny Cash, Sehlooho 482, Theko $ 6.50 6, Elvis Presley, Sehlooho 335, Theko ea $ 7.30 7, John Lennon, Sehlooho sa 271, Theko ea $ 7,90 8, Michael Jackson, Sehlooho 373, Theko ea $ 5.50

Joale taelo e ne e tla ngola mela e latelang ho file e hlahisoang "output1.txt":

545, 723, 610, 118, 482, 335, 271, 373,

Haeba karolong e arohaneng ea mohala ke ntho e 'ngoe ho e-na le libaka kapa li-tab, tse kang comma, u ka hlakisa hore polelong ea awk e latelang:

awk -F, '{hatanya $ 3}' table1.txt> output1.txt

Sena se tla khetha sehlooho ho tloha karolong ea 3 ea mola o mong le o mong haeba lihlopha li nkoa li arotsoe ke li-comma. Ka lebaka leo, tlhahiso, tabeng ena, e tla ba:

Sehlooho 545 Sehlooho sa 723 Sehlooho 610 Sehlooho sa Sehlooho se Leqepheng 373 Sehlooho 373

Lethathamo la lipolelo ka hare ho li-brackets tse koaletsoeng ('{', '}' li bitsoa block. Haeba u beha polelo e nang le tumello ka pel'a seteishene, polelo e ka hare ho block e tla etsoa feela haeba boemo bo le 'nete.

'$ 7 == "\ $ 7.30" {print print $ 3}' table1.txt

Tabeng ena, boemo boo ke $ 7 == "\ $ 7.30", e leng se bolelang hore karolo e karolong ea 7 e lekana le $ 7.30. Ho khutlela morao ka pel'a letšoao la dollar ho sebelisetsoa ho thibela tsamaiso ea ho hlalosa $ 7 e le e feto-fetohileng mme ho e-na le hoo e nka letšoao la dollar ka ho toba.

Kahoo polelo ena ea awk e hlahisa sehlooho karolong ea boraro ea mola o mong le o mong o nang le "$ 7.30" ho lintlha tsa 7.

U ka boela ua sebelisa lipolelo tse tloaelehileng joaloka boemo. Ka mohlala:

awk '/ 30 / {print print $ 3}' table1.txt

Mohala o pakeng tsa tse peli o oela ('/') ke polelo e tloaelehileng. Tabeng ena, ke mohala feela "30." Sena se bolela hore haeba mohala o na le khoele "30", tsamaiso e hlahisa sebopeho moeling oa boraro oa mola oo. Sephetho se setšoantšong se ka holimo e ka ba:

Timberlake, Gaga, Presley,

Haeba likarolo tsa tafole ke linomoro tsa awk tse ka sebetsang ho tsona ho latela mohlala ona:

awk '{print ($ 2 * $ 3) + $ 7}'

Ntle le mefuta e fapaneng ea likarolo tse fihletsoeng tsa mohala oa hona joale ($ 1, $ 2, joalo-joalo) ho na le moelelo oa $ 0 o bolelang mola o feletseng (line), le NF e fapaneng e nang le palo ea masimo.

U ka boela ua hlalosa mefuta e mecha e tšoanang le ea mohlala ona:

hak '{sum = 0; bakeng sa (col = 1; col <= NF; col ++) kakaretso + = $ col; kopitsa chelete; } '

Sena se kopanya le ho fetola kakaretso ea likarolo tsohle tsa mola o mong le o mong.

Mantsoe a mangata a atisa ho kopantsoe le litaelo tse fokolang .