在一个正则表达式 ksh 行中,我需要:
- 查找特定字符串的出现,后跟任意数量的字符,直到最后出现特定值(在本例中为逗号),
- 复制与输出匹配的东西,然后
- 在复制的文本之后和特定值的最后一次出现之前插入一个新值(在本例中为逗号)
因此,如果我的输入字符串如下所示:
SEARCH_STRING anything_else(foo,bar),
我想输出的是:
SEARCH_STRING anything_else(foo,bar) INSERTED_VALUE,
到目前为止,我的 sed 表达式看起来像这样(它只匹配并复制所有内容,直到第一次出现逗号,而不是最后一次):
sed -e 's/SEARCH_STRING [^,]\+/& INSERTED_VALUE/'
...这导致:
SEARCH_STRING anything_else(foo INSERTED_VALUE,bar)
……这不太对。我知道我需要使用负面展望——但不能完全正确地使用语法。您能提供的任何建议将不胜感激,谢谢。即使没有找到逗号,我也需要在行尾顺便做同样的替换(尽管我很欣赏这可能需要一个单独的问题和表达)。提前感谢您提供的任何建议....