Я запускаю несколько команд подстановки в качестве ядра colorize script для maven.
Одна из команд sed
использует регулярное выражение, которое работает в оболочке как обсуждаемое здесь. Текущую (нерабочую) реализацию можно найти здесь.
Когда я включаю один из вариантов команды в script, возникает другое поведение:
Вариант 1:
$ sed -re "s/([a-zA-Z0-9./\\ :-]+)/\1/g"
Адаптировано к script:
-re "s/WARNING: ([a-zA-Z0-9./\\ :-]+)/${warn}WARNING: \1${c_end}/g" \
Ошибка: Оболочка выводит ту же информацию, что и если бы я набрал $ sed
. Странно!?
Вариант 2:
$ sed -e "s/\([a-zA-Z0-9./\\ :-]\+\)/\1/g"
Адаптировано к script:
-e "s/WARNING: \([a-zA-Z0-9./\\ :-]\+\)/${warn}WARNING: \1${c_end}/g" \
Ошибка:
sed: -e выражение # 7, char 59: команда invalid reference\1 on `s RHS