Điều này không tạo ra bất kỳ đầu ra. Làm thế nào mà?
$ echo 'this 1 2 3' | grep '\d\+'
Nhưng những điều này làm:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
Không ai trong số đó làm việc cho tôi (Solaris).
—
spraff
Tôi cũng không. (Cygwin) Ý của bạn là có
—
Eric Wilson
\+
? Điều đó nghĩa là gì?
vâng, tôi đang dùng Ubuntu 10.04, sử dụng bash. Đối với BRE trong grep, bạn phải thoát một số ký tự. Hãy thử "Cơ bản so với biểu thức chính quy mở rộng" trong man grep.
—
Ankur Agarwal
@FarmBoy:
—
Daenyth
+
trong regex có nghĩa là "một hoặc nhiều mã thông báo trước". Trong trường hợp này, nó đã thoát vì đó là cú pháp được yêu cầu bởi grep
công cụ regex mặc định.
@FarmBoy:
—
Keith Thompson
+
cần phải được thoát nếu bạn đang sử dụng grep
; nếu bạn đang sử dụng egrep
, nó không. grep -E
tương đương với egrep
(ít nhất là đối với phiên bản GNU).