Ví dụ: điều này không tìm thấy tệp:
: > 12; basename $(find -E . -regex '^(.*)(\d{2})' -print 2>/dev/null)
Nhưng điều này không:
basename $(find -E . -regex '^(.*)([0-9]{2})' -print 2>/dev/null)
Đồng thời, ví dụ:
echo -e '12\nabc\n456' | grep -E -e '^(\d{3})'
hoạt động khá tốt, mặc dù dường như sử dụng như nhau regcomp()
.
Tôi đang làm gì sai và làm cách nào để khắc phục?
grep
sử dụng mộtBSD
mã cơ sở, khôngGNU grep
. Các-E
tùy chọn là một mosh củaPOSIX ERE and PCRE
và tôi tin độc quyền cho OS X.find
sử dụngBRE
vàERE
và\d
lớp nhân vật không hợp lệ.