नहीं है मुझे आश्चर्य है कि मुझे SO पर इस तरह का कोई प्रश्न नहीं मिल रहा है।sed- उस पंक्ति को हटाएं जिसमें पैटर्न
मैं उन सभी पंक्तियों को हटाने के लिए sed का उपयोग कैसे करूं जिनमें विशिष्ट पैटर्न न हो।
cat kitty dog
नहीं है मुझे आश्चर्य है कि मुझे SO पर इस तरह का कोई प्रश्न नहीं मिल रहा है।sed- उस पंक्ति को हटाएं जिसमें पैटर्न
मैं उन सभी पंक्तियों को हटाने के लिए sed का उपयोग कैसे करूं जिनमें विशिष्ट पैटर्न न हो।
cat kitty dog
हो जाएगा ताकि:
cat kitty dog
giraffe panda
lion tiger
मैं एक एसईडी आदेश है कि, जब कहा जाता है, सभी लाइनों है कि शब्द cat
शामिल नहीं है को नष्ट करेगा हैं:
उदाहरण के लिए, मैं इस फ़ाइल है कार्य करें:
sed -i '/cat/!d' file1.txt
एक सटीक मिलान के लिए मजबूर करने के लिए:
+०१२३५१६४१०६sed -i '/\<cat\>/!d' file1.txt
या
sed -i '/\bcat\b/!d' file1.txt
जहां \<\>
& \b\b
बल एक सटीक मिलान।
तो आपकी आवश्यकता "मुझे स्ट्रिंग cat
युक्त सभी लाइनें देगी"। तो क्यों नहीं बस grep
का उपयोग कर:
grep cat file
आप इस awk
awk '/cat/' file
(के रूप में केंट द्वारा बताया) का उपयोग शब्द 'बिल्ली' containg सभी लाइनों को देखने के कर सकते हैं:
grep cat file
सभी पंक्तियों को देखने के लिए शब्द 'cat' को containg नहीं:
grep -v cat file
इसके अलावा, 'sed -n'/cat/p'' –
उस इनपुट पर आज़माएं जिसमें 'स्कैटर' शब्द शामिल है। क्या वांछित व्यवहार है? –
@EdMorton: प्रतिक्रिया के लिए धन्यवाद। – Amit