Если вы хотите " увеличить " число, то вы не можете жестко закодировать новое значение, но вам нужно захватить то, что есть, и увеличить это
echo "1.41.1" | perl -pe's/[0-9]+\.[0-9]+\.\K([0-9]+)/$1+1/e'
Здесь *Модификатор 1006 * делает так, чтобы сторона замены оценивалась как код, и мы можем +1
зафиксированное число, которое затем подставляется.\K
отбрасывает предыдущие совпадения, поэтому нам не нужно их возвращать;см. " Утверждения с обходом " в Расширенных шаблонах в perlre .
Иногда обходные пути - это просто то, что вам нужно, но они всегда значительно увеличивают сложность регулярного выражения (простобудучи там), может быть сложно, чтобы получить право, и повредить эффективности.Они здесь не нужны.
Странный вывод, который вы получаете, заключается в том, что двойные кавычки, используемые в программе Perl, «приглашают» оболочку посмотреть, что внутри, и интерпретирует !
как расширение истории и запускаетэто, как объясняется в посте Руаха.