我有一长串类似的东西:
AllowedUsers [email protected] [email protected] [email protected] [email protected] .....
全部在单行中。基本上是一堆用户名@ip
我想通过使用它的用户名(例如aaa)来进行查找和替换,然后什么都不替换。
我测试了我的正则表达式(RegExr),它按我的预期工作。但是,当我尝试在 上进行操作时sed
,它没有用。
$ sed 's/bbbb11.*?(?= )//' test
AllowedUsers [email protected] [email protected] [email protected] [email protected] .....
我也试过用bbbb11.*?(?=[[:space:]])
,也没用。
我错过了什么?
Positive(
?=
) 和 Negative lookahead(?!
) 断言仅在支持PCRE 扩展的工具中工作良好。GNUsed
和 POSIX 都不支持这些库扩展。您需要perl
开箱即用的支持或者,如果没有正则表达式支持,您也可以很好地实现相同的目标。对于这种琐碎的替换,您可以执行以下操作,这在 POSIX 和 GNU 中都有效
sed