Orduithe Linux & Scileanna Bhlaosc
awk: Nuair a Thiocfaidh Colúin mar Chláir
Is é awk an rud a shroicheann tú nuair a thagann colúin mar aonad oibre: logaí rochtana nginx, /etc/passwd, aschur df, rud ar bith a chónaíonn i réimsí. Is teanga iomlán í (athróga, eagair, uimhríochtúil, rialacha patrún-gníomhaíochta) ag caitheamh éadaí aon-líneála, agus is é sin go díreach an folús ceart le haghaidh fóiréinsice log. An teorainn macánta: is líne aon-líne é rud ar bith a dhéanann awk go compordach, agus is script Python é rud ar bith a dteastaíonn leathanach de bhlocanna nach bhfuil glactha leis féin fós.
Príomhphointí
- Is é scoilteadh allamuigh an cleas lárnach: awk -F: '$3 >= 1000 {print $1}' /etc/passwd liostaíonn sé na fíor-úsáideoirí, agus -F'[,|]' láimhseálann teorainneacha ilcharachtar nuair a bhíonn an gearradh éirithe cheana féin.
- Comhair le eagair chomhthiomsaitheach: awk '{count[$1]++} END {do (c sa chomhaireamh) comhaireamh priontála[c], c}' /var/log/secure casann sé aon logáil isteach i dtábla minicíochta i líne amháin.
- Ceisteanna chomhad freagartha NR agus NF: Is é ‘NR==1’ an líne chinn, comhaireamh ‘{print NF}’ colúin in aghaidh an tsraith, agus nuair a dhéantar comparáid idir NR agus luachanna sábháilte comhaid eile aimsítear dúbailt agus bearnaí.
- Is é sliocht Match plus an t-arán laethúil: awk '/ 500 / {print $7, $9}' tarraingíonn access.log leathanaigh earráide le URLanna, agus ligeann OFS duit $0 a athphriontáil tar éis duit réimse amháin a chur in eagar gan an líne a athscríobh tú féin.
- Is iad na bloic BEGIN agus END an áit ina gcónaíonn an obair chomhiomlán: socraíonn BEGIN deighilteoirí, ritheann na meánrialacha in aghaidh an líne, priontaí END iomláin; trí bhloc a léamh go breá, tá cúig script ag caitheamh faoi cheilt.
- Is éard atá i gceist le lua ná fíor-namhaid na n-aon líneálacha sliogán: cuir an clár singil, cuir na litreacha dúbailte taobh istigh de, agus cuimhnigh nach sroicheann $7 taobh istigh de shreangán sliogáin dhá-luaite awk ar chor ar bith.
- Faigheann obair uimhriúil LC_ALL=C: déanann camóga logánta in uimhreacha agus corr-chomhbhailiúcháin comparáidí agus sórtáil ar an taobh eile, agus is líne amháin a shábhálann tráthnóna é nuair a phionnaítear an locale.
- Bíodh an tsíleáil ar eolas agat: téann camóga luaite taobh istigh de CSV, JSON neadaithe, nó formáidí illíne stáit go Python; is scalpal é awk agus fanann sé ar cheann.
Nóta allamuigh
Tháirg línéar awk amháin a thug colúin dollar ó loga le camóga logánta uimhreacha nár ceistíodh aon duine go dtí gur oscail an chuntasaíocht an tuarascáil. LC_ALL=Bhog C isteach inár leabharlann ailias an tseachtain sin agus d'fhan sé.
Ceisteanna coitianta
awk nó a ghearradh le haghaidh obair cholúin?
gearrtha le haghaidh deighilteoir seasta amháin agus liosta gnáthcholún; awk na coinníollacha nóiméad, regex, uimhríochtúil, nó comhiomláin a thaispeáint suas, ag an bpointe gearrtha amach as a dhoimhneacht ar aon nós.
Conas a dhéanaim colún a shuimiú nó a mheán?
Comhiomlán in END: cuireann awk '{s += $5} END {print s, s/NR}' leis agus cuireann sé meánréimse cúig trasna línte; stiall na mílte deighilteoirí ar dtús má chuireann locale camóga isteach sna huimhreacha.
Cén fáth a n-iompraíonn mo línéar amháin awk ar bhealach difriúil ar macOS?
seoltar macOS POSIX awk gan síntí GNU mar -i inplace nó gensub; is féidir go dteipeann ar scripteanna a ritheann ar Linux go ciúin ansin, mar sin coinnigh aon líneáil POSIX-chruthach nó tabhair gawk leat.
An féidir JSON a pharsáil awk?
Gan brí: níl aon struchtúr colúin ag JSON a thuigeann awk agus briseann hacks regex ar réada neadaithe. Úsáid jq, arb é cruth awk do JSON, nó modúl json Python nuair a fhásann an post.
Conas a chabhraíonn Kinetikatech le orduithe linux & scileanna bhlaosc
Ní gá duit a bheith i do shaineolaí ar orduithe linux & scileanna bhlaosc: Na horduithe agus na nósanna scriptithe a chinneann an n-oibríonn riarthóir freastalaí nó an ndéanann sé troid: cuardach, claochlú, aistriú, agus maoirsiú a dhéanamh ar théacs agus ar phróisis leis na huirlisí a chónaíonn i ngach bonn a shuiteáil. Is ar an gcúis sin go díreach atá Slándáil Freastalaithe Linux agus Bainistíocht Freastalaithe ann: cur i mbun, daingniú, faireachán agus duine ar dualgas de lá is d'oíche.