Új hozzászólás Aktív témák

  • bambano

    titán

    válasz SteveBeard #1254 üzenetére

    "IN=$(cat /opt/test/sum/traffic.tmp | awk '{print $2 " " $7}' | grep $IP | awk '{print $1}' | tr -d '\n' )"

    bajok:
    - ha a grep $IP-t másodiknak rakod, akkor az első awknak fel kell dolgoznia minden sort, amiben nincs benne az ip, azt is, feleslegesen. tehát ha tudod szűrni, csökkenteni azt az adatmennyiséget, amit az awknak betolsz, azt jobb minél előbb, mert az awk egyébként interpreter nyelv, tehát lassú
    - tehát nem cat /opt...| awk | grep $IP, hanem grep $IP /opt/test/sum/traffic.tmp
    - ebben az esetben szerintem a két awk összevonható egybe
    - például így: awk '{ if ($7==$IP) print $2' }" szintaxist most nem teszteltem terminálban.
    - ha a végén úgyis letörlöd a soremelést, akkor egyszerűbb az awk-kal ki sem iratni, megint megspóroltál egy forkot.

    elvileg az awk-nak lehet kívülről változónak értéket adni, valahogy így a doksi szerint: awk -v IP=192...
    és akkor erre tudsz a programon belül hivatkozni.

Új hozzászólás Aktív témák