Tôi đang tìm chuỗi foo=
trong tệp văn bản trong cây thư mục. Đó là trên một máy Linux thông thường, tôi có bash shell:
grep -ircl "foo=" *
Trong các thư mục cũng có nhiều tệp nhị phân khớp với "foo =". Vì các kết quả này không liên quan và làm chậm quá trình tìm kiếm, tôi muốn grep bỏ qua việc tìm kiếm các tệp này (chủ yếu là hình ảnh JPEG và PNG). Làm thế nào tôi có thể làm điều đó?
Tôi biết có các tùy chọn --exclude=PATTERN
và --include=PATTERN
, nhưng định dạng mẫu là gì? Trang người đàn ông của grep nói:
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
Tìm kiếm trên grep bao gồm , grep bao gồm loại trừ , loại trừ grep và các biến thể không tìm thấy bất cứ điều gì có liên quan
Nếu có một cách tốt hơn để chỉ grepping trong một số tệp nhất định, tôi sẽ làm tất cả cho nó; di chuyển các tập tin vi phạm không phải là một lựa chọn. Tôi không thể chỉ tìm kiếm một số thư mục nhất định (cấu trúc thư mục là một mớ hỗn độn lớn, với mọi thứ ở mọi nơi). Ngoài ra, tôi không thể cài đặt bất cứ thứ gì, vì vậy tôi phải làm với các công cụ phổ biến (như grep hoặc tìm thấy được đề xuất ).
--exclude-dir=.svn
, vì vậy grep hoàn toàn không đi vào chúng
grep -r --exclude-dir=var "pattern" .