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 に答える