2012-09-04 19 views
11

मैं निम्नलिखित 'ग्रेप' आदेश का उपयोग करें दिए गए पथ पर मेरी फ़ाइलों में से प्रत्येक में स्ट्रिंग alert की गिनती प्राप्त करने के लिए:grep -c के साथ प्राप्त आउटपुट को कैसे सॉर्ट करें?

grep 'alert' -F /usr/local/snort/rules/* -c 

मैं आदेश- कहना आरोही क्रम वांछित है, जिसके परिणामस्वरूप उत्पादन को क्रमबद्ध कैसे करूँ, अवरोही क्रम, नाम से आदेश दिया गया आदि। इन मामलों के लिए विशिष्ट उत्तर पर्याप्त है।

आप grep के अलावा अन्य आदेशों का स्वतंत्र रूप से सुझाव दे सकते हैं।

+0

कॉलम == 2 और विभाजक == ':' के साथ [यूनिक्स क्रमशः टैब डिलीमीटर के साथ सॉर्ट करें] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/1037365/unix-sort-with-tab-delimiter) –

उत्तर

22

इसे क्रमबद्ध करें। मान लें कि आपके फाइलनामों में कोई कॉलन नहीं है, कोलन को फ़ील्ड सैपरेटर के रूप में निर्दिष्ट करने के लिए "-t" विकल्प का उपयोग करें। संख्यात्मक सॉर्टिंग के लिए उपयोग करें।

उदाहरण:

grep 'alert' -F /usr/local/snort/rules/* -c | sort -t: -n -k2 

द्वारा अलग क्षेत्रों में लाइनों विभाजित करना चाहिए ":", छँटाई के लिए दूसरे क्षेत्र का उपयोग, और संख्या के रूप में इस का इलाज (ताकि 21 वास्तव में 3 की तुलना में बाद है)।

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