Tìm kiếm một chuỗi đệ quy trong khi trong thư mục hiện tại


15

Tôi muốn tìm kiếm tất cả các tệp đệ quy từ thư mục tôi đang tìm kiếm cho một chuỗi cụ thể.

Tôi đã thử

grep -r -i my_string

và tôi đã thử nó trong một thư mục thử nghiệm với hai tệp nhỏ nhưng nó sẽ không tìm thấy chuỗi.

Ngoài ra, có cách nào đặc biệt để định nghĩa "chứa" thay vì khớp toàn bộ từ không?


3
Hãy thử grep -r -o -i "your_string" *(với "trích dẫn).
pl1nk

Tôi nhận được một vài sự cho phép từ chối các mớ hỗn độn, nó chỉ bỏ qua các tệp đó mà tiếp tục kiểm tra phần còn lại?
David

Phải, những tập tin này đang bị bỏ qua.
pl1nk

Câu trả lời:


26

Bạn đang tìm kiếm một tên tập tin hoặc một từ trong một tập tin? grep tìm kiếm bên trong các tập tin, dường như là những gì bạn muốn.

grep sử dụng các biểu thức chính quy - trên thực tế, đó là những gì phần "re" đại diện cho. Vì vậy, nó không sử dụng các ký tự bash bình thường; nghĩa là, abc*sẽ không tìm thấy các từ bắt đầu bằng abc, nó sẽ tìm các từ bắt đầu bằng ab, sau đó là 0 hoặc nhiều hơn c. Nhưng vâng, nếu bạn chỉ đơn giản là cho nó một mô hình, nó sẽ tìm thấy nó ở bất cứ đâu, không có kiến ​​thức về toàn bộ từ. Nếu bạn muốn tìm toàn bộ từ, bạn sẽ cần tạo một biểu thức chính quy để nói với nó.

Nhưng, giống như hầu hết các lệnh, bạn cần đặt (các) tên tệp ở cuối lệnh, vì vậy ví dụ của bạn sẽ chỉ ngồi đó và chờ tên tệp.

Như @plink đã nói, hãy sử dụng

grep -r -o -i "your_string" *

(hoặc *.*, hoặc các tập tin khác). Các lỗi có thể được bỏ qua. Nếu bạn gặp nhiều lỗi, bạn có thể nối 2>/dev/nullvào cuối, điều này sẽ chuyển hướng stderr sang thiết bị null.


6
Đối với những người tò mò: -r có nghĩa là đệ quy (nghĩa là nó tìm trong thư mục hiện tại và TẤT CẢ các thư mục trong thư mục hiện tại VÀ tất cả các thư mục trong thư mục đó ..... cho đến vô cùng), -o có nghĩa là nó không hiển thị toàn bộ dòng, và -i là trường hợp bỏ qua.
BKSpurgeon

@johnsnails Backtick là không cần thiết. Đây có thể là một lỗi định dạng trên Stack Exchange khi đăng dưới dạng khối mã nội tuyến.
tom_mai78101

Vâng, điều đó có ý nghĩa.
johnsnails
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.