สิ่งนี้ไม่สร้างผลลัพธ์ใด ๆ มาได้ยังไง?
$ echo 'this 1 2 3' | grep '\d\+'
แต่สิ่งเหล่านี้ทำ:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
ไม่มีงานอะไรสำหรับฉัน (Solaris)
—
spraff
ฉันก็ไม่เหมือนกัน. (Cygwin) คุณหมายถึงมี
—
Eric Wilson
\+
? นั่นหมายความว่าอย่างไร?
ใช่ฉันใช้ Ubuntu 10.04 โดยใช้ bash สำหรับ BRE ใน grep คุณต้องหลีกเลี่ยงอักขระบางตัว ลอง "Basic vs Extended Regular Expressions" ใน man grep
—
Ankur Agarwal
@FarmBoy:
—
Daenyth
+
ใน regex หมายถึง "โทเค็นก่อนหน้าอย่างน้อยหนึ่งรายการ" ในกรณีนี้จะมีการหลีกเลี่ยงเนื่องจากเป็นไวยากรณ์ที่ต้องการโดยเอ็นgrep
จิ้น regex เริ่มต้นของ
@FarmBoy:
—
Keith Thompson
+
ต้องหนีถ้าคุณใช้grep
; ถ้าคุณใช้egrep
มันไม่ได้ grep -E
เทียบเท่ากับegrep
(อย่างน้อยสำหรับเวอร์ชัน GNU)