2

这类似于已经提出的问题。但是,我正在寻找 Sed 特定的答案。我有类似于以下的文本:

一些示例文本[带有一些额外的文本].foo

我只需要抓住括号内的文本。到目前为止,我的尝试都是徒劳的。我可以用其他工具解析该行,但似乎无法让 Sed 正确解析它。

4

3 回答 3

4

像这样的东西?

$ 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?
于 2009-05-25T03:25:47.603 回答
1

这是一个替换括号内的文本的示例:

$ 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
于 2009-05-25T03:10:56.133 回答
0
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
于 2010-03-23T09:13:41.153 回答