Эти кавычки - символы юникода, которые передаются в egrep
как часть выражения для соответствия.
Кроме того, первый класс символов, вероятно, не совсем то, что вам нужно, попробуйте:
echo B1500.00 | egrep '^[-+]?[0-9]+(\.[0-9]{2})?$'
который не имеет соответствия, в то время как
echo 1500.00 | egrep '^[-+]?[0-9]+(\.[0-9]{2})?$'
имеет соответствие 1500.00
Предложенный мной класс символов будет соответствовать только +
или -
, в то время как ваш оригинальный класс будет также соответствовать |
и открывающим и закрывающим паренсам, что, вероятно, не то, что вам нужно.
Как указал Костас, вы можете сказать egrep
, что хотите найти всю строку и игнорировать начальные и конечные якоря, например, так:
echo 1500.00 | egrep -x '[-+]?[0-9]+(\.[0-9]{2})?'