如果我可以在输入中的某个位置包含一系列两个或更多字符(在我的情况下为>
),如何在{strong>每个出现的>
之间插入内容}?
例如:>>
到>foo>
,还有:
>>>
到>foo>foo>
并且:
>>>>
至>foo>foo>foo>
。
使用's/>>/>foo>/g'
当然给了我>foo>>foo>
,这不是我需要的。
换句话说,我怎样才能将角色推回到模式空间,或者在不消耗角色的情况下匹配角色(这有什么意义呢?)
答案 0 :(得分:1)
这也应该有用
sed ':b; s/>>/>foo>/; tb'
答案 1 :(得分:1)
使用Perl,您可以迭代地执行此操作
$ echo '>>>>' | perl -pe 's/>>/>foo>/ while />>/'
>foo>foo>foo>
或使用前瞻性断言,它不消耗第二个>
$ echo '>>>>' | perl -pe 's/>(?=>)/>foo/g'
>foo>foo>foo>