Awk: A Shell parancsfájlok megtanulása az awk Terminal parancs használatával

Awk: A Shell parancsfájlok megtanulása az awk Terminal parancs használatával

Awk: A Shell parancsfájlok megtanulása az awk Terminal parancs használatával

A GNU / Linux típusú "awk" parancs a szabad operációs rendszerekben nagyon hatékony parancs, amely segít nekünk abban, hogy nagyobb irányítást élvezzünk más parancsokból vagy parancsokból származó adatok feldolgozásakor. Az AWK név szerzői vezetéknevek kezdőbetűiből származik: Alfred Aho, Péter Weinberger és Brian KErnighan.

Ez a parancs egy szkriptnyelvet biztosít a szövegfeldolgozáshoz, amellyel a következőket tehetjük: Változók meghatározása, karaktersorozatok és számtani operátorok használata, folyamatvezérlés és ciklusok használata, valamint formázott jelentések létrehozása. Valójában az Awk nem csak mintázatfeldolgozó parancs, hanem egy egész szemantikus elemzési nyelv.

Bevezetés az "awk" parancsba

Az AWK volt az első nagyon népszerű konzol segédprogram az adatok kezelésére (kezelésére / kinyerésére) a UNIX csővezetékek funkcionalitásának maximalizálása révén. A segédprogram által biztosított nyelv jelenleg szinte minden modern UNIX-típusú operációs rendszer szabványa, olyannyira, hogy része az alapvető UNIX-specifikációknak, így általában a legtöbbjükhöz alapértelmezés szerint már telepítve van.

A leggyakoribb szintaxisa: awk 'program' fájlok és hol lehet a 'program': minta {action} pattern {action}. A parancs soronként olvassa a bemeneti fájlt. Minden sort sorrendben összehasonlítunk az egyes mintákkal; Minden sorhoz illeszkedő minta esetében a megfelelő műveletet hajtják végre.

Egy egyszerű példa, például:

awk -F: '$1=="root" {print}' /etc/passwd

kéri az első mezőt, ha az / etc / passwd minden sorának gyökere, és kinyomtatja, figyelembe véve a ":" mezőt az -F: mezőelválasztóként.

Bevezető példa Awk

Gyakorlati példák

A leggyakrabban használt parancsok listája

Tekintse meg a listát a Rendszer terminál előzményei alapján, a leggyakrabban használtaktól a legkevésbé rendezve.

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

Példa:

1. példa: Awk parancs

Grafikon (táblázat) az egyes gazdagépek kapcsolatainak számával

Hozzon létre egy ASCII szöveges grafikont, amely megmutatja a gazdagéptől az egyes IP-címekig tartó kapcsolatok teljes számát.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

Példa:

2. példa: Awk parancs

A könyvtárak listája méret szerint

A képernyőn kinyomtathatja az aktuális útvonal könyvtárainak listáját a legnagyobbtól a legkisebbig, bemutatva a méretüknek megfelelő címkéket a g, m és k betűkkel.

du --max-depth=1 | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'

Példa:

3. példa: Awk parancs

Forgalom megjelenítése hálózati interfészről

Tekintse meg online a bejövő és a kimenő adatfogyasztást kilobájtban (kb) egy adott hálózati interfészhez.

while [ /bin/true ]; do OLD=$NEW; NEW=`cat /proc/net/dev | grep eth0 | tr -s ' ' | cut -d' ' -f "3 11"`; echo $NEW $OLD | awk '{printf("\rin: % 9.2g\t\tout: % 9.2g", ($1-$3)/1024, ($2-$4)/1024)}'; sleep 1; done

Példa:

Szerezzen be egy fibonacci számsort

Hozzon létre egy X mennyiségi számot egy fibonacci mintát követve, amelyhez 2 alapszámot kell összeállítani.

seq 50| awk 'BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}'

Példa:

5. példa: Awk parancs

A fájlstruktúra grafikus felsorolása méret szerint

Szerezzen be egy listát az operációs rendszer gyökérkönyvtárában található összes mappáról, a grafikával (sávokkal) és a számszerű ábrázolással együtt a méretük százalékában.

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');sudo du / --max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++){printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Példa:

6. példa: Awk parancs

Sorolja fel a fájltípusok összefoglalását a Directory-ban

Mutasson egy könyvtárban található fájltípusok listáját, a hozzá tartozó fájlok számával együtt.

find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g

Példa:

8. példa: Awk parancs

Az awk parancsot használó parancssori példák remélem, hogy nagyon hasznosnak találják. És használják őket közvetlenül a konzolról vagy közvetett módon egy szkriptbe történő beillesztéssel (automatizált feladat).

A Shell Scripting következő bejegyzésében további parancsokat fogunk felfedezni.

Ha szeretne többet megtudni a "grep" parancsról, látogassa meg ezt a linket "DEBIAN Wiki”És ha többet szeretne megtudni a Shell Scriptingről a saját blogunkban, ide kattintva megnézheti a témával kapcsolatos egyéb kiadványainkat: Szkriptelés DesdeLinux


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   tuxito dijo

    Csak az első példát értettem, semmi mást 🙁