NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SL

Ukazi in spretnosti lupine Linux

awk: To je ko stolpci postanejo programi

awk je tisto, po čemer posežete, ko stolpci postanejo enota dela: dnevniki dostopa nginx, /etc/passwd, izhod df, vse, kar živi v poljih. To je popoln jezik (spremenljivke, nizi, aritmetika, pravila vzorca in dejanja), oblečen v enovrstično obleko, kar je ravno prava preobleka za log forenziko. Iskrena meja: vse, kar awk naredi udobno, je enovrstično, in vse, kar potrebuje stran blokov, je skript Python, ki se še ni priznal.

Ključne točke

  1. Razdelitev polj je glavni trik: awk -F: '$3 >= 1000 {print $1}' /etc/passwd navaja dejanske uporabnike in -F'[,|]' obravnava ločila z več znaki, ko je cut že obupal.
  2. Štetje z asociativnimi nizi: awk '{count[$1]++} END {for (c in count) print count[c], c}' /var/log/secure pretvori poljuben dnevnik v frekvenčno tabelo v eni vrstici.
  3. NR in NF odgovarjata na vprašanja datoteke: 'NR==1' je naslovna vrstica, '{print NF}' šteje stolpce na vrstico in primerjava NR s shranjenimi vrednostmi druge datoteke najde dvojnike in vrzeli.
  4. Match plus ekstrakt je vsakdanji kruh: awk '/ 500 / {print $7, $9}' access.log potegne strani z napakami z URL-ji, OFS pa vam omogoča ponovni natis $0 po urejanju posameznega polja, ne da bi sami prepisali vrstico.
  5. V blokih BEGIN in END živi agregatno delo: BEGIN nastavi ločila, srednja pravila se izvajajo na vrstico, END natisne vsote; trije bloki se dobro berejo, pet je scenarij v preobleki.
  6. Narekovaji so resnični sovražnik enovrstičnih ukaznih lupin: navedite program v enojnih narekovajih, literale znotraj njega v dvojne narekovaje in ne pozabite, da 7 $ znotraj niza lupine z dvojnimi narekovaji sploh nikoli ne doseže awk.
  7. Numerično delo dobi LC_ALL=C: področne vejice v številkah in nenavadna primerjanja obrnejo primerjave in razvrščanja na stran, pripenjanje področnih nastavitev pa je ena vrstica, ki prihrani popoldne.
  8. Spoznajte zgornjo mejo: vejice v narekovajih znotraj CSV, ugnezdenih JSON ali večvrstičnih formatov s stanjem gredo v Python; awk je skalpel in to tudi ostane.

Terenska beležka

Enovrstičnica awk, ki je seštevala dolarske stolpce iz dnevnika z vejicami področne nastavitve, je ustvarila številke, o katerih nihče ni dvomil, dokler računovodstvo ni odprlo poročila. LC_ALL=C se je tisti teden preselil v našo knjižnico vzdevkov in ostal.

Pogosta vprašanja

awk ali cut za delo v stolpcu?

cut za eno fiksno ločilo in navaden seznam stolpcev; awk v trenutku, ko se pokažejo pogoji, regularni izrazi, aritmetika ali agregati, na kateri točki je rez tako ali tako izven svoje globine.

Kako seštejem ali povprečim stolpec?

Seštej v END: awk '{s += $5} END {print s, s/NR}' doda in povpreči polje pet čez vrstice; najprej odstrani ločila tisočic, če področne nastavitve v številke vstavijo vejice.

Zakaj se moj awk one-liner v macOS obnaša drugače?

macOS pošilja POSIX awk brez razširitev GNU, kot sta -i inplace ali gensub; skripti, ki se izvajajo v Linuxu, lahko tam tiho odpovejo, zato imejte enovrstične v obliki POSIX ali imejte gawk s seboj.

Ali lahko awk razčleni JSON?

Ni smiselno: JSON nima strukture stolpcev, ki jo awk razume, vdori regularnih izrazov pa se zlomijo na ugnezdenih objektih. Uporabite jq, ki je oblika awk za JSON, ali Pythonov modul json, ko se delo poveča.

Kako Kinetikatech pomaga s ukazi in spretnosti lupine linux

Predlog je enostaven: Ukazi in skriptne navade, ki odločajo, ali skrbnik upravlja strežnik ali se bori proti njemu: iskanje, preoblikovanje, prenos in nadzorovanje besedila in procesov z orodji, ki živijo v vsaki osnovni namestitvi. Zaverejte si storitve Varnost strežnikov Linux in Upravljanje strežnikov in imete popolno pokritje: serijozna evaluacija, čista implementacija, neprekinjen monitoring.

Pogovorite z inženirjem

Problem z strežnikom? Napadena spletna stran? Dolgo se naloži?

Kritični problemi rešeni v 30 minutah — nonstop, 7 dni v tednu.

Zahtevajte hitno podporo support@kinetikatech.com