मुझे लिनक्स में एक साथ दो तार वाली फाइलें कैसे मिलेंगी? [डुप्लिकेट]


1

संभव डुप्लिकेट:
एक जटिल खोज के लिए खोज और संक्षिप्त संयोजन कैसे करें? (GNU / linux, find, grep)

मेरे पास एक फाइल है जिसमें एक टेक्स्ट है:

PADLST20120907:D:05B:UN:IBTA+TK4 17 JFL01+01'BGM+250+C'RFF+TN:TK4

मैं इन दो स्ट्रिंग्स का उपयोग करके लिनक्स में इस फाइल को खोजना चाहता हूं: "जेएफएल" और "20120907"। जैसा कि आप ऊपर देखते हैं, फ़ाइल में "जेएफएल" और "20120907" दोनों हैं। मुझे कमांड लाइन में क्या लिखना चाहिए? Stirngs एक ही पंक्ति में हो सकते हैं या नहीं भी हो सकते हैं।

मैं आउटपुट में पूर्ण पथ के साथ फ़ाइल नाम देखना चाहता हूं। मैं त्रुटि संदेश या अनुमति से इनकार नहीं देखना चाहता। मैं उस निर्देशिका में पुनरावर्ती खोज करना चाहता हूं जिसमें मैं खड़ा हूं या मैं एक पथ निर्दिष्ट करना चाहूंगा।

सादर

जवाबों:


3

एक साधारण बैश लूप वही करेगा जो आपको चाहिए:

$ grep -rl JFL . | while read n; do grep -l 20120907 $n; done

यदि आपके फ़ाइल नामों में स्थान हैं, तो करें:

$ grep -rl JFL . | while read n; do grep -l 20120907 "$n"; done

त्रुटि संदेशों को दबाने के लिए, पुनर्निर्देशित करें मानक त्रुटि :

$ grep -rl JFL . 2>/de/null | while read n; do grep -l 20120907 "$n"; done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.