Можно ли с sed заменить строку группами захвата из регулярного выражения?sed заменить строку на группы захвата
У меня есть это регулярное выражение, обратите внимание, что это исправлено, я не могу его изменить.
simple sample(.*)
Это то, что я хочу:
This is just a simple sample line with some text
Изменить на:
line with some text
мне нужно что-то вроде этого:
sed '/simple sample \(.*\)/c \1'
который теперь выдает :
1
Кто-нибудь знает, можете ли вы использовать группы захвата в sed с помощью функции линии изменения?
У вас его почти нет, вам просто нужен синтаксис 'sed '/ find/replace /': 'sed' s \ (. * \) Простой пример \ (. * \) С \ (. * \)/\ 1 \ 2/'файл'. Я не знаю, почему вы используете '\ c'. – fedorqui
Да, я знаю, что это возможно для этого примера, спасибо. Но проблема в том, что мне нужно заменить строку, потому что у меня есть регулярные выражения, которые мне нужно обработать, когда они соответствуют строке, у меня есть только доступное значение замены. То есть. У меня может быть простой образец регулярного выражения, который, если он соответствует, должен изменить строку на 'great'. Когда я использую метод, я бы получил «Это просто отличная строка с текстом». Я знаю, что это можно было бы решить, когда правильные регулярные выражения будут введены на место (в данном случае '(. *) Простой пример (. *)', Но это невозможно из-за того, что у меня есть./c'. – zjeraar
Да, вы правы, я изменил его. – zjeraar