2012-05-30 41 views
8

tôi cố gắng để xóa tất cả các dòng người beginn với một số ký tự đặc biệt tùy chọn tiếp theo blubb:xóa dòng với trận đấu sed một regex đặc biệt

thats dòng Tôi muốn trận đấu:

#blubb 
*blubb 
-blubb 
blubb 

thats nên làm điều đó , nhưng không làm việc :(

sed "/^.?blubb$/d" -i special.conf 
sed "/^[#*-]?blubb$/d" -i special.conf 

Có ai đó giải pháp đúng ?

Trả lời

11

Sử dụng lệnh này sed:

sed -i.old '/^[#*-]\{0,1\}blubb/d' special.conf 

HOẶC

sed -i.old -E '/^[#*-]?blubb/d' special.conf 

HOẶC

sed -i.old -r '/^[#*-]?blubb/d' special.conf 
+0

hoàn hảo :) cảm ơn! – Thomas

+0

'sed -i.old '/^[# * -] \? Blubb/d' special.conf' cũng có thể hoạt động. – potong

+0

@potong: Trên thực tế '\?' Không hoạt động trên máy Mac của tôi. – anubhava

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