आरंभ करने के लिए आप awk
एक फ़ाइल में लाइनों की खोज करने के लिए उपयोग कर सकते हैं जिसमें एक स्ट्रिंग होती है जैसे:
$ awk '/CFS264/ { .... }' lastloggedin
{ .... }
वसीयत में बिट्स उस स्ट्रिंग के साथ लाइनों की संख्या को बढ़ाने के लिए आवश्यक कमांड होंगे। यह पुष्टि करने के लिए कि ऊपर काम कर रहा है, आप print $0
उन पंक्तियों को प्रिंट करने के लिए एक का उपयोग कर सकते हैं जिनमें खोज स्ट्रिंग शामिल है।
$ awk '/CFS264/ { print $0 }' lastloggedin
मतगणना के अनुसार, यदि आप "awk counter" की खोज करते हैं, तो आप इस SO Q & A शीर्षक पर ठोकर खाएंगे: awk का उपयोग रिकॉर्ड की संख्या को गिनने के लिए । आपके द्वारा वर्णित विधि के लिए वहां दी गई विधि पर्याप्त होगी:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
उदाहरण
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
नोट: आप यह नहीं कहते कि last
आउटपुट में CFS264 किस क्षेत्र से संबंधित है । मान लें कि यह एक उपयोगकर्ता नाम है, तो आप आगे awk
केवल उसी क्षेत्र को खोजने के लिए कमांड को प्रतिबंधित कर सकते हैं :
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awk
? यदि नहीं, तो आप उपयोग कर सकते हैंgrep -c CFS264 lastloggedin | wc -l
।