मैं बाहरी फ़ाइल से पैटर्न लेने वाली फ़ाइल में कुछ पंक्तियों को हटाने का तरीका ढूंढ रहा हूं। सबसे अच्छा तरीका सेड का उपयोग करना होगा। मैं इस तरह से कई लेखों की कोशिश कर रहा था , लेकिन वे मेरे काम का जवाब नहीं देते हैं।
कहो मेरे पास एक पाठ है।
Adam
Belle
Candy
Donald
Eve
और एक पैटर्न है।
Don*
Candy
साथ grep -fv pattern.file text.file
मैं वास्तव में मैं क्या चाहते हैं, लेकिन केवल देखने में मिलता है:
Adam
Belle
Eve
मैं फ़िल्टर की गई आउटपुट को एक नई फ़ाइल पर पुनर्निर्देशित नहीं कर सकता। इसलिए, मुझे मूल पाठ को संशोधित करने में सक्षम होने की आवश्यकता है । बाहरी फ़ाइल से पैटर्न (एस) से मेल खाने वाली सभी पंक्तियों को हटा दें।
मेरे असली usecase में text.file में गैर- अल्फ़ाबेटिकल ऑर्डर होता है, हमेशा कैपिटल नहीं किया जाता है, इसलिए 'sed' के लिए जेनेरिक रेगेक्स बनाना संभव नहीं है।
बाहरी फ़ाइल से लाइनों को हटाने के लिए पैटर्न पास करने के लिए सबसे अच्छा तरीका क्या होगा?
sponge
, आउटपुट को उसी फ़ाइल पर पुनर्निर्देशित करें ।
grep -vf pattern.file text.file >foo; cp foo text.file & rm foo
sed -i
वैसे भी पर्दे के पीछे एक नई फ़ाइल बनाता है।