Sử dụng sedđể sửa đổi tập tin tại chỗ:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Điều này hướng dẫn sedxóa tất cả các dòng không phù hợp với mẫu. Bản thân mẫu là ^(bắt đầu của dòng), theo sau là reporthoặc -ttheo sau hhoặc o.
Bạn nên lưu ý rằng đây không phải là sửa đổi tại chỗ thực tế: sedtạo một bản sao lưu tạm thời và ghi đè lên tệp gốc với nó.
Nếu bạn muốn sedgiữ một bản sao lưu của tệp gốc (có thể là một ý tưởng tốt nếu tệp chứa dữ liệu quan trọng), hãy cung cấp cho công -itắc một phần mở rộng để tạo tệp sao lưu:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
sẽ sửa đổi your_filevà tạo một bản sao lưu của bản gốc được gọi your_file.bak.
Một ghi chú bên
Xin đừng hiểu sai ý định của tôi hoặc vi phạm điều này, nhưng tôi nhận thấy rằng bạn có nhiều câu hỏi liên quan đến regex / xử lý văn bản tương tự. Tôi khuyên bạn nên bắt đầu học sed, awkvà greptự mình giúp tăng tốc năng suất của bạn. Một lần nữa, đừng hiểu sai ý tôi, tôi rất vui khi được giúp đỡ (như hầu hết mọi người ở đây); chỉ là tôi nghĩ rằng bạn sẽ được hưởng lợi rất nhiều từ việc chọn những công cụ này để sử dụng hàng ngày.
Chỉ để chứng minh mức độ hữu ích của mọi người xung quanh đây, hãy xem xét đề xuất của @ slm trong các bình luận bên dưới và thoải mái ghé qua phòng chat này bất cứ lúc nào để đặt câu hỏi.