pipe magic: awk

Stiam mai de mult scamatoria, dar mi-a folosit de 3 ori saptamana asta (si e abia miercuri!): cand RS (resorce separator) este setat la stringul vid, awk lucreaza per paragrafe.

De exemplu:
mailq | tail -n +2 | awk 'BEGIN {RS=""} {if ($8 ~ /gmail.com$/) print $1}' | tr -d '*!' | postsuper -h -

Asta pune on hold toate mailurile catre gmail. (Da, am facut pe vidanjorul de postfix de curand).

Atentie! "Pipe incantations" sunt periculoase daca sunt folosite cu copy-paste fara a le intelege deplin! Sa nu ziceti ca nu v-am zis. Si a, da, atentie la eventualele "smart quotes" puse de wordpress :(

4 Responses to “pipe magic: awk”

  1. Marius Says:

    tail: Warning: “+number” syntax is deprecated, please use “-n +number”

  2. petre Says:

    Asa e, era recent in changelogul de la coreutils ca trec pe strict POSIX compatibility, uitasem. Am modificat.

  3. carco Says:

    Din aceasi categorie:

    $man postsuper

    to delete all mail with exactly one recipient user@example.com:


    mailq | tail +2 | awk ´BEGIN { RS = "" }
    # $7=sender, $8=recipient1, $9=recipient2
    { if ($8 == "user@example.com" && $9 == "")
    print $1 }
    ´ | tr -d ’*!’ | postsuper -d -

  4. petre Says:

    Pai da, acolo am vazut prima oara, acum ceva timp.