2013-05-08 33 views
5

Tôi muốn xóa tất cả các dòng với 3 dấu cộng:Thoát dấu cộng không hoạt động

+++ 3 plus signs 
+ 1 plus sign 
+++ 3 plus signs 

Dưới đây là lệnh sed tôi, thoát khỏi dấu cộng sau khi bắt đầu của dòng

sed '/^\+\+\+/d' -> This erase all lines 
sed '/^+++/d'  -> This works and show only the 1 plus sign line 

Tại sao? Có vấn đề gì trong khi thoát dấu cộng?

Trả lời

5

"Nhận xét nhanh. Bản gốc sed không hỗ trợ" metacharacter ". GNU sed thực hiện nếu bạn sử dụng tùy chọn dòng lệnh" -r ", cho phép biểu thức chính quy mở rộng."

(Source)

Nếu bạn không sử dụng sed -r, sau đó bạn không cần phải thoát khỏi + vì nó không được coi là một metacharater.

+2

@Tom Điều đáng lưu ý là cụm từ thông dụng có 3 dạng cú pháp phổ biến: cơ bản, mở rộng và tương thích với perl. Thường xuyên sed (không có -r) thực hiện hình thức cơ bản. –

Các vấn đề liên quan