Ух, это было интересное задание! Потратил некоторое время, пытаясь выяснить, почему мои регулярные выражения работают только частично в Solaris. В любом случае, хитрость заключается в использовании egrep
вместо grep
. Вы можете обратиться к их страницам руководства, чтобы обнаружить следующую разницу:
grep - search a file for a pattern
в то время как:
egrep - search a file for a pattern using full regular expressions
Я заметил, что в моей системе RH функции grep
и egrep
имеют схожую функциональность:
grep, egrep, fgrep - print lines matching a pattern
Например, вы можете использовать следующее решение:
echo $PARAM | egrep '^([0-9]+\.)+[0-9]+$'