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 sed
xó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à report
hoặc -t
theo sau h
hoặ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ế: sed
tạ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 sed
giữ 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 -i
tắ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_file
và 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
, awk
và grep
tự 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.