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ề -q
chuyể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ĩ -R
là 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.
grep
khô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ưgrep
xem 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?