--only-matchingフラグでgrepコマンドを使用しようとしていますが、期待どおりに機能しません。
このコマンドは次のとおりです。
echo "1/2/3/4/5" | grep -oE "^([^/]+/){0,2}"
次の出力を提供します。
1/2/
3/4/
ただ期待していた1/2/
どうなりますか?行の先頭ではないので、3/4/
一致してはいけません.."^([^/]+/){0,2}"
(GNU grepの実行2.5.1)
答え1
それは抜け穴GNU Grep
以前のバージョンでは今回提出してくださいGNU
(つまり、バージョンより前2.5.3
)。
変更ログの関連部分を引用するには:
Previously failing tests relative to left anchors (^ and \<) and -w should now pass.
これ初期コミットエラーを説明するためにテストが追加されました。
# End of a previous match should not match a "start of ..." expression.
grep_test "word_word/" "word_/" "^word_*" -o