Aco*_*orn 5 grep regular-expression
我正在尝试使用带有 --only-matching 标志的 grep 命令,但它的行为不像我期望的那样。
这个命令:
echo "1/2/3/4/5" | grep -oE "^([^/]+/){0,2}"
给出这个输出:
1/2/
3/4/
Run Code Online (Sandbox Code Playgroud)
我只是期待 1/2/
这是怎么回事..?3/4/不应该匹配,"^([^/]+/){0,2}"因为它不在行的开头..
(运行 GNU grep 2.5.1)
这是早于此提交(即早于version )的版本中的错误。GNU GrepGNU2.5.3
引用变更日志的相关部分:
Previously failing tests relative to left anchors (^ and \<) and -w should now pass.
Run Code Online (Sandbox Code Playgroud)
描述错误的初始提交还为其添加了一个测试:
# End of a previous match should not match a "start of ..." expression.
grep_test "word_word/" "word_/" "^word_*" -o
Run Code Online (Sandbox Code Playgroud)