2011-03-03 27 views

Trả lời

0
sed -e 's/BEGIN hello world how are you END/BEGIN fine, thanks END/g' 
+0

Xin chào, Cảm ơn bạn đã trả lời, nhưng tôi đã nhầm lẫn trong câu hỏi của mình ... nếu nguồn là nhiều dòng, tôi muốn nói như dòng1: BEGIN, line2: hello, line3: world, line4: how, line4: are , line5: you, line6: END –

+0

Sử dụng \ W + thay vì dấu cách (hoặc tương tự, xem tài liệu), để khớp với bất kỳ khoảng trắng nào và không chỉ là một dấu cách. Ngoài ra, bạn cần một tùy chọn để không chỉ phân tích cú pháp một dòng, nhưng đó là tất cả trong manpage seds. – Daniel

16
$ cat file 
BEGIN 
hello 
world 
how 
are 
you 
END 

$ sed -e '/BEGIN/,/END/c\BEGIN\nfine, thanks\nEND' file 
BEGIN 
fine, thanks 
END 

/BEGIN/,/END/ chọn một loạt các văn bản bắt đầu với BEGIN và kết thúc với END. Sau đó, lệnh c\ được sử dụng để thay thế phạm vi đã chọn bằng BEGIN\nfine, thanks\nEND.

+0

+1 Ngoài ra một cách để giải thích câu hỏi. – Daniel

+0

Một số giải thích kỹ thuật sed nào được sử dụng sẽ là tốt đẹp – Flow

+1

@Flow cập nhật câu trả lời. –

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