Tôi đang tìm kiếm các tệp dựa trên biểu thức chính quy và sau đó tôi đang cố gắng tìm kiếm các tệp đó cho nội dung. Vì vậy, ví dụ, tôi có một cái gì đó như
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
Vấn đề tôi gặp phải là một số đường dẫn có khoảng trống trong đó, gây nhầm lẫn xargs
. Tôi biết rằng nếu tôi chỉ sử dụng find
, tôi có thể sử dụng -print0
đối số (cùng với -0
đối số trên xargs
) để giữ xargs không coi các khoảng trắng là dấu phân cách. Có cái gì đó tương tự với grep
?
Hay tôi đang tiếp cận vấn đề này một cách sai lầm hoàn toàn? Ngây thơ, find
để grep
cho xargs grep
có ý nghĩa đối với tôi, nhưng tôi mở cửa cho các phương pháp khác mà mang lại kết quả tương tự.
xargs
bằng cách sử dụng-i
tham số, a lacat sample.txt | grep "pat t ern" | xargs -i grep "{}"
- dấu ngoặc nhọn cho nó biết vị trí của đối số. Hướng dẫn cho tôi biết rằng-i
không được ủng hộ-I
vì vậy có lẽ cũng đáng để xem qua.