10.2-RELEASE/amd64: grep regex syntax vs. grep-bug

no@spam@mgEDV.net nospam at mgedv.net
Mon Sep 28 12:10:56 UTC 2015


hi folks,
the goal: grep, that a variable contains a number and JUST digits.
# setup sample variable - we're on /bin/sh @ 10.2-RELEASE/amd64.
x=""
# od output the content of the variable to ensure content
echo "$x" | od -ctdC
0000000   \n
           10
0000001
# now try /usr/bin/grep'pin (C locale) that it contains...
# ^          at BOL...
# [0-9]   require a digit
# *          ... and digits following
# $          ...until we reach EOL
# ... but...:
echo "$x" | grep -c '^[0-9]*$'
1             <== WHY?
it works if i remove the *, but this would only work for 1digit nrs.
is this a grep bug or my false understanding of how '*' works?


More information about the freebsd-questions mailing list