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để grepcho xargs grepcó ý 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ự.
xargsbằng cách sử dụng-itham 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-ikhông được ủng hộ-Ivì vậy có lẽ cũng đáng để xem qua.