
У меня есть файл из двух строк, из которого я пытаюсь извлечь некоторую информацию для скрипта bash с помощью sed.
# File Comment
PrefixForInformation {information to be captured}
Мне нужно получить информацию между, но не включая фигурные скобки. У меня есть регулярное выражение PCRE /{(.*)}/
или \s{([^}]*)
то, что, кажется, работает вОнлайн Регулярное выражение 101но я не могу перенести это в рабочую конфигурацию sed.
решение1
$ sed -n 's/.*{\(.*\)}.*/\1/p' file
information to be captured
Как это работает
-n
Это сообщает sed, что не следует ничего печатать, пока мы явно не попросим его об этом.
s/.*{\(.*\)}.*/\1/p
Эта команда замены захватывает как группу 1 все, что находится между двумя фигурными скобками. Вся строка заменяется группой 1, обозначенной
\1
.p
В конце сообщает sed, что если совпадение было найдено, он должен вывести результат.