मेरी एक सामान्य प्रथा एक निश्चित प्रकार की सभी फाइलों पर ग्रीप्स करना है, उदाहरण के लिए, उन सभी एचटीएमएल फाइलों को खोजें जिनमें "रंपस" शब्द है। यह करने के लिए, मैं का उपयोग करें
find /path/to -name "*.html" | xargs grep -l "rumpus"
कभी-कभी, find
अपने नाम के रूप में एक स्थान के साथ एक फ़ाइल लौटाएगा जैसे कि my new file.html
। जब इसे xargs
पारित किया जाता है grep
, हालांकि, मुझे ये त्रुटियां मिलती हैं:
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
मैं देख सकता हूं कि यहां क्या हो रहा है: या तो पाइप या xargs
फाइलों के बीच रिक्त स्थान को सीमांकक मान रहा है। मेरे जीवन के लिए, हालांकि, मैं यह नहीं जान सकता कि इस व्यवहार को कैसे रोका जाए। क्या इसे find
+ के साथ किया जा सकता है xargs
? या मुझे एक पूरी तरह से अलग कमांड का उपयोग करना है?