3

入力のどこかに一連の 2 つ以上の文字 (私の場合は) を含めることができる場合、出現するたび>に何かを挿入するにはどうすればよいですか?>

例: >>to>foo>だけでなく: >>>to>foo>foo>および: >>>>to >foo>foo>foo>.

を使用's/>>/>foo>/g'するともちろん が得られますが>foo>>foo>、これは必要なものではありません。

言い換えれば、文字をパターン スペースに戻す、または文字を消費せずに一致させるにはどうすればよいでしょうか (それは意味がありますか?)。

4

2 に答える 2

1

Perlを使用すると、繰り返し実行できます

$ echo '>>>>' | perl -pe 's/>>/>foo>/ while />>/'
>foo>foo>foo>

または、2番目を消費しない先読みアサーションを使用します>

$ echo '>>>>' | perl -pe 's/>(?=>)/>foo/g'
>foo>foo>foo>
于 2012-12-03T11:24:14.917 に答える
1

これも機能するはずです

sed ':b; s/>>/>foo>/; tb'
于 2012-12-03T10:40:03.790 に答える