2013-01-02 33 views

Trả lời

11

Có. grep "a certain string" 200901*/*.csv.

5

Bạn cần một cái gì đó như:

grep NEEDLE 200901*/*.csv 

(giả sử chuỗi tìm kiếm của bạn là NEEDLE dĩ nhiên - chỉ cần thay đổi nó để bất cứ điều gì bạn đang thực sự tìm kiếm).

Vỏ bash có khả năng mở rộng đường dẫn đa cấp và tên tệp.

Đó là, tất nhiên, chỉ giới hạn ở các tệp CSV một thư mục. Nếu bạn muốn tìm kiếm toàn bộ các subtrees, bạn sẽ phải sử dụng lệnh chế độ hơi phức tạp (và có thể thích ứng) find.

Mặc dù, giả sử bạn có thể thiết lập một giới hạn về chiều sâu, bạn có thể nhận được ngay với một cái gì đó tương tự (ví ba cấp độ):

grep NEEDLE 200901*/*.csv 200901*/*/*.csv 200901*/*/*/*.csv 
+0

Hoặc bạn có thể [đặt globstar và sử dụng **] (http://wiki.bash-hackers.org/internals/shell_options#globstar) –

4

Hãy thử điều này:

grep -lr "Pattern" 200901*/*.csv 
0

Thử kết hợp của tìm để tìm kiếm các mẫu tên tệp cụ thể và grep để tìm mẫu:

find . -name "*.csv" -print -exec grep -n "NEEDLE" {} \; | grep -B1 "NEEDLE" 
Các vấn đề liên quan