Trước hết, như những người khác đã nói, không có lý do để sử dụng find
, chỉ sử dụng đệ quy grep
:
grep -irm 1 carrot . | wc -l
Việc -m 1
đảm bảo grep
sẽ dừng tìm kiếm từng tệp sau trận đấu đầu tiên. Không có nó, bạn sẽ không đếm số lượng tệp chứa carrot
nhưng số lượng dòng , cùng một tệp sẽ được tính nhiều lần nếu nó chứa nhiều phiên bản của carrot
. Từ man grep
:
-r, --recursive
Read all files under each directory, recursively, following
symbolic links only if they are on the command line. This is
equivalent to the -d recurse option.
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
Nếu bạn thực sự, thực sự muốn làm điều đó với tìm kiếm, bạn có thể làm
find . -type f -exec grep -im 1 carrot {} \; | wc -l
Lưu ý rằng tôi đang chỉ định -type f
vì bạn không muốn grep
thư mục.