Các *.c
mô hình được đánh giá bởi vỏ của bạn. Nó áp dụng cho thư mục hiện tại, giống như bạn sẽ sử dụng ls *.c
.
Tôi nghĩ rằng những gì bạn muốn thay vào đó là tìm tất cả các tệp phù hợp với *.c
mẫu (đệ quy) và có grep
tìm kiếm cho bạn trong đó. Đây là một cách để làm điều đó:
find . -name "*.c" -print0 | xargs --null grep -l search-pattern
Nó sử dụng xargs
để nối các kết quả tìm kiếm bằng cách find
.
Ngoài ra, sử dụng -exec
tùy chọn để tìm, ví dụ:
find . -name "*.c" -exec grep -l search-pattern "{}" \;
Ngoài ra, tôi không chắc chắn nếu bạn thực sự muốn -l
tùy chọn grep
. Nó sẽ dừng lại ở trận đấu đầu tiên:
-l, --files-with-matches
Suppress normal output; instead print the name of each
input file from which output would normally have been
printed. The scanning will stop on the first match.
(-l is specified by POSIX.)
--include=GLOB
lựa chọn này. Kết hợp với tùy chọn đệ quy, điều này rất mạnh mẽ và không yêu cầufind
. Đẹp!