Tôi có một khối văn bản đó trông như thế này:Sử dụng sed để loại bỏ một khối văn bản
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
Tôi muốn loại bỏ toàn bộ khối này. Lệnh sed là gì?
Tôi có một khối văn bản đó trông như thế này:Sử dụng sed để loại bỏ một khối văn bản
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
Tôi muốn loại bỏ toàn bộ khối này. Lệnh sed là gì?
$ cat text
abc
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
def
$ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text
abc
def
http://www.catonmat.net/blog/sed-one-liners-explained-part-three/
Để loại bỏ tất cả các văn bản bắt đầu từ và bao gồm <!-- BOF CLEAN -->
và kết thúc tại và kể cả <!-- EOF CLEAN -->
, sử dụng sau lệnh sed:
sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name;
tham khảo: Delete text or paragraph between two sections using sed
SED xóa của tôi tập tin!! Tôi đã làm 'sed '/^0.*$/d' s1d13700.c' mà nhổ kết quả chính xác vào giao diện điều khiển, sau đó tôi đã làm' sed '/^0.*$/d' s1d13700.c> s1d13700.c' để ghi đè lên tệp gốc với kết quả và tệp kết thúc hoàn toàn trống! –
@ Zom-B Điều gì xảy ra trong 'sed ... s1d13700.c> s1d13700.c' là shell đầu tiên tạo ra một tệp rỗng mới' s1d13700.c' trước khi chạy sed, do đó ghi đè lên tệp đầu vào của bạn có cùng tên. Sử dụng 'sed -i.original ... s1d13700.c' để thay đổi tệp tại chỗ và tạo bản sao lưu của tệp gốc dưới dạng' s1d13700.c.original'. –