Một trong những thực tiễn phổ biến của tôi là thực hiện các greps trên tất cả các tệp thuộc một loại nhất định, ví dụ: tìm tất cả các tệp HTML có từ "rumpus" trong đó. Để làm điều đó, tôi sử dụng
find /path/to -name "*.html" | xargs grep -l "rumpus"
Đôi khi, find
sẽ trả về một tệp có khoảng trắng trong tên của nó, chẳng hạn như my new file.html
. Tuy nhiên, khi xargs
chuyển nó sang grep
, tôi nhận được các lỗi sau:
grep: /path/to/bad/file/my: No such file or directory
grep: new: No such file or directory
grep: file.html: No such file or directory
Tôi có thể thấy những gì đang diễn ra ở đây: đường ống hoặc xargs
đang xử lý khoảng trắng dưới dạng dấu phân cách giữa các tệp. Tuy nhiên, đối với cuộc sống của tôi, tôi không thể tìm ra cách ngăn chặn hành vi này. Nó có thể được thực hiện với find
+ xargs
? Hay tôi phải sử dụng một lệnh hoàn toàn khác?