2012-07-09 9 views
21

मैं मिलान फ़ाइल नामों को मुद्रित करने के लिए grep के साथ -l ध्वज का उपयोग कर रहा हूं।आखिरकार नवीनतम संशोधन तिथि द्वारा "grep -l" के आउटपुट को क्रमबद्ध कैसे करें?

मैं फिर परिणाम (फाइलों) को आरोही क्रम में सूचीबद्ध करना चाहता हूं यानी नवीनतम आखिरी आखिरी।

जाहिर

grep -l <pattern> *.txt | ls -rt 

मैं क्या जरूरत है, के बाद से -lrt ls केवल सभी फ़ाइलें आउटपुट नहीं है।

उत्तर

38

प्रयास करें:

ls -rt *.txt | xargs grep -l <pattern> 

हम पहले ls का उपयोग *.txt फ़ाइलों की सूची को और संशोधन समय (नवीनतम पिछले), तो प्रत्येक प्रविष्टि के लिए उन्हें grep के माध्यम से चलाने के द्वारा उन्हें सॉर्ट तो हम केवल उन्हीं फ़ाइलों को पैटर्न होते हैं प्रिंट आउट ।

+0

सही, धन्यवाद – Pyderman

1

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन कोई है जो उसी के लिए खोज कर रहा है के लिए मेरे सुझाव को जोड़ने के बारे में सोचा ..

for i in $(ls -rt *.txt); do grep <pattern> $i; done

संबंधित मुद्दे