Простая проблема, но я не могу ее исправить.
У меня есть следующее регулярное выражение Perl:
echo ... | grep -P "(? i) (v (ersion)?) \ s? (?! 0) \ d (\. |,) \ d {1,}"
Предполагается, что это соответствует каждой строке, описывающей версия чего-либо (например, V2,0
или версия 1.2
). Но это не совпадает, когда версия начинается с V0 ...
. Однако, когда я выполняю это, я получаю сообщение об ошибке -bash:! 0: событие не найдено
, потому что !
используется для поиска в истории команд и выполнения последнего попадания.
Это в основном ломает регулярное выражение Perl для меня. Как я могу избежать интерпретации оболочки как ярлыка?
Используйте одинарные, а не двойные кавычки, чтобы защитить ваше регулярное выражение от оболочки.