awk help

Andreas Perstinger andipersti at gmail.com
Sat Apr 15 19:51:03 UTC 2017


Ernie Luzar <luzar722 at gmail.com> wrote:
>I can't figure out how to code awk to process the 2 lines as a pair.

You could use awk's built-in "getline" function in order to process the
following line after you are done with the current one:

$ cat awk_help.txt
poollist: opts = 0x2
Name: test Role: ipf    References: 2   Hits: 0
        Nodes Starting at 0xc9fd4800
        Address: 1.11.244.65/32
                Hits 0  Bytes 0 Name    Ref 2
        Address: 1.163.113.139/32
                Hits 0  Bytes 0 Name    Ref 2
        Address: 1.163.139.214/32
                Hits 2  Bytes 0 Name    Ref 2
        Address: 1.173.51.202/32
                Hits 0  Bytes 0 Name    Ref 2
        Address: 1.175.164.129/32
                Hits 0  Bytes 0 Name    Ref 2
        Address: 99.197.14.34/32
                Hits 3  Bytes 0 Name    Ref 2
$ awk '/Address/ {address = substr($2, 1, length($2)-3); getline; if ($2) printf "%s;\t%s\n", address, $2}' awk_help.txt
1.163.139.214;  2
99.197.14.34;   3

Bye, Andreas


More information about the freebsd-questions mailing list