У вас есть целый набор команд внутри одинарных кавычек, поэтому вы не можете использовать одинарные кавычки вокруг шаблона grep
.
Кроме того, "$LOADED_IMAGE"
также лучше использовать в двойных кавычках, поскольку это может привести кпроблема, если он содержит пробелы.
Кроме того, A
после A-Z
является избыточным, как и группа захвата, вы можете удалить скобки в шаблоне и использовать
IMAGE_TAG=$(echo "$LOADED_IMAGE" | grep -oP -m 1 ":[A-Z]\w*")
Или, используя эквивалентное регулярное выражение POSIX BRE:
IMAGE_TAG=$(echo "$LOADED_IMAGE" | grep -o -m 1 ":[[:upper:]][[:alnum:]_]*")
Примечание -m 1
с grep
извлечет только первое совпадение, которое, похоже, соответствует тому, что вы здесь.