awkkshbehaviorsusesolaris-10

"awk" Command Behaves Differently On SuSE 11 vs. Solaris 10


Friends,

I'm trying to extract the last part of following path in a ksh script:

TOOL_HOME=/export/fapps/mytool/mytool-V2-3-4

I want to extract the version # (i.e., 2-3-4) from the above.

awk runs fine on SuSE:

echo $TOOL_HOME | awk -F'mytool-V' '{print $2}'
#2-3-4

However, on Solaris 10, it produces the following:

#ytool

So on Solaris, awk is ignoring everything after the first character in -F'mytool-V'

What should i do to get the same output on both OS's?


Solution

  • Solaris awk is broken...

    $ echo "$TOOL_HOME" | awk '{sub(/.*mytool-V/,"")}1'
    2-3-4
    

    or simply with sed

    $ echo "$TOOL_HOME" | sed 's/.*mytool-V//'
    2-3-4