Как найти текст внутри [] в Sed? - PullRequest
2 голосов
/ 25 мая 2009

Это похоже на вопрос, который уже был задан. Тем не менее, я ищу конкретный ответ Sed. У меня есть текст, похожий на следующее:

Пример текста [с дополнительным текстом] .foo

Мне нужно взять только текст в скобках. Мои попытки до сих пор были тщетными. Я могу разобрать строку с другими инструментами, но я не могу заставить Седа правильно ее проанализировать.

Ответы [ 3 ]

4 голосов
/ 25 мая 2009

Как то так?

$ echo Some sample text [with some extra text].foo | sed -e 's/.*\[\([^]]*\)\].*/\1/g'
with some extra text

$ echo Some sample text [with some extra text].foo | sed -e 's/.*\[\([^]]*\)\].*/Your text was: "\1", okay?/g'
Your text was: "with some extra text", okay?
1 голос
/ 25 мая 2009

Вот пример замены текста в скобках:

$ echo 'Some sample text [with some extra text].foo' | sed -e 's/\[\(with some extra text\)\]/<\1>/g'
Some sample text <with some extra text>.foo
0 голосов
/ 23 марта 2010
echo "Some [sample inside] text [with some extra text].foo" | sed -n '/\[/{ s/\]/\n/g; s/.[^\n]*\[/:/g;s/\..*//;p}'
:sample inside:with some extra text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...