Using awk to grab only numbers from a string

You can also try the following with awk assuming there will be only one number in a string:

awk '{print ($0+0)}'

This converts your entire string to numeric, and the way that awk is implemented only the values that fit the numeric description will be left. Thus for example:

echo "19 trees"|awk '{print ($0+0)}'

will produce:
19


if awk is not a must:

grep -o '[0-9]\+'

example:

kent$ echo "ref12345678"|grep -o '[0-9]\+'
12345678

with awk for your example:

kent$ echo "ref12345678"|awk -F'[^0-9]*' '$0=$2'     
12345678

Tags:

Regex

Awk