Tôi đang cố gắng tìm các tập tin có chứa một từ cụ thể bằng cách sử dụng grep. Có nhiều tệp trong thư mục (> 500)
Lệnh tôi chạy
$ grep 'delete' *
Đầu ra
validate_data_stage1:0
validate_data_stage2:0
validate_data_stage3:0
validate_data_stage4:0
validate_data_stage5:0
validate_input_stage1:0
validate_input_stage2:0
validate_input_stage3:0
validate_input_stage4:0
.... and hundred of such lines
Đây là những tệp không chứa kết quả khớp. Tôi muốn ngăn chặn những dòng đó hiển thị đến thiết bị xuất chuẩn. Tôi biết về -qchuyển đổi, nhưng điều đó sẽ ngăn chặn đầu ra hoàn chỉnh, điều mà tôi không muốn.
Làm thế nào để làm điều đó?
grep 'delete' * -R, nhưng tôi không nghĩ -Rlà gây ra bất kỳ vấn đề nào. Và vâng, thông thường nó không in những cái không khớp, nhưng không chắc trường hợp nào ở đây ...
grep -- 'delete' *(thêm --) và nó hoạt động như mong đợi. Loại bỏ --là dẫn đến màn hình trên.
-ci. Cảm ơn đã giải quyết vấn đề. Bạn có thể đăng kịch bản này như một câu trả lời.
grepkhông nên in tên tệp của các tệp không khớp. Trên thực tế, có vẻ nhưgrepxem xét một dòng với nội dung0được khớp. Bạn có thể đăng mẫu tìm kiếm chính xác mà bạn đang sử dụng không?