एक पाठ फ़ाइल में आने वाले कमांड आउटपुट की पंक्तियों को कैसे फ़िल्टर किया जाए?


16

मान लीजिए कि हमारे पास निषिद्ध लाइनों की एक पाठ फ़ाइल है forbidden.txt। पाठ फ़ाइल में मौजूद कमांड आउटपुट की सभी पंक्तियों को फ़िल्टर करने का एक छोटा तरीका क्या है?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort

4
fgrep -vxf forbidden.txt input.txt | sort
सातु कटसरा

जवाबों:


27

grepइस तरह का उपयोग करें:

$ grep -v -x -F -f forbidden.txt input.txt

विकल्पों की लंबी सूची का grepमतलब है

  • -vमैच की समझ को उल्टा कर दें, यानी मैच न करने वाली चीजों की तलाश करें ।
  • -xकिसी पैटर्न का मिलान करते समय, आवश्यकता होती है कि पैटर्न पूरी लाइन से मेल खाता हो , यानी लाइन पर कहीं भी नहीं।
  • -Fएक पैटर्न से मेल खाते समय, इसे एक निश्चित स्ट्रिंग के रूप में व्यवहार करें , अर्थात एक नियमित अभिव्यक्ति के रूप में नहीं।
  • -fदिए गए फ़ाइल से पैटर्न पढ़ें ( forbidden.txt)।

फिर उस पाइप को sortया जो भी आप इसके साथ करना चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.