Mat*_*ijo 23 regex grep sed lookbehind
我创建了一个测试使用,grep
但它不起作用sed
.
grep -P '(?<=foo)bar' file.txt
Run Code Online (Sandbox Code Playgroud)
这可以通过返回正常工作bar
.
sed 's/(?<=foo)bar/test/g' file.txt
Run Code Online (Sandbox Code Playgroud)
我期待footest
作为输出,但它不起作用.
hwn*_*wnd 26
GNU sed不支持外观断言.您可以使用更强大的语言,如Perl,或者可能使用ssed
支持Perl样式正则表达式的实验.
perl -pe 's/(?<=foo)bar/test/g' file.txt
Run Code Online (Sandbox Code Playgroud)
Cas*_*yte 17
请注意,大多数情况下,您可以使用替换字符串中的捕获组和反向引用来避免lookbehind(或前瞻):
sed 's/\(foo\)bar/\1test/g' file.txt
Run Code Online (Sandbox Code Playgroud)