我有一个用例将属性 :: 添加到字段 name_[0-9][0-9]: 但某些字段已经具有属性 ::,所以我只需要将属性 :: 添加到 name_[0-9][ 0-9]:后面没有属性:
我试过这个:
sed -n 's/name_[0-9][0-9]:(?!attribute::)/&attribute::/p' out
Run Code Online (Sandbox Code Playgroud)
我在在线正则表达式调试器上测试,正则表达式应该是我需要的,但实际上如果我给出 name_01:abc,这不匹配
“在线正则表达式调试器”通常不会告诉您他们测试的是哪种精确的正则表达式方言;如果他们告诉你,你需要知道你sed支持哪种方言。
您正在尝试使用 Perl 正则表达式功能,该功能在sed我所知道的任何版本中均不受支持,但当然,它在 Perl 中得到了很好的支持。
perl -ne 's/name_[0-9][0-9]:(?!attribute::)/$&attribute::/ and print' out
Run Code Online (Sandbox Code Playgroud)