[CentOS] awk awk

Thu Dec 6 20:34:56 UTC 2012
m.roth at 5-cent.us <m.roth at 5-cent.us>

You rang?

Craig White wrote:
> a little out of my comfort zone and have practically gotten what I want
> but awk seems determined to send a message via std error which is
> problematic and annoying. Basically trying to get a list of virtual host
> names from nginx config files like this:
>
> $ awk -F" " '/./ { if ( match ( "^server_name$", $2 ) ) print $1 }'
> /opt/nginx/sites/*.conf \
>  | grep -v server_name | grep -v ';' | grep -v '}'

Why are you doing all that piping and grepping? And the -F" " confuses
me...oh, I see. First, whitespace is the default field separator in awk.
Then, are you asking if there's a line with a "." in it, or just any
non-whitespace? If the latter... mmm, I see, you *really* don't understand
awk.

awk -f '{if ( $1 ~ /server_name/ ) {\
            server = $2;\
            gsub(/;|}/,"",server);\
            print server;
         }
        }'
<snip>
       mark