यहाँ अधिकांश उत्तर रेखाओं की सामग्री को अवेक प्रोग्राम में अंतर्निहित नियमित अभिव्यक्तियों का उपयोग करके गिना जाना है। यदि आपको ऐसी सामग्री वाली रेखाओं का मिलान करने की आवश्यकता है, जिसमें विशेष वर्ण हो सकते हैं (या तो Awk या नियमित अभिव्यक्ति के लिए) तो वास्तव में समानता के लिए तार की तुलना करना बेहतर होगा। इसलिए मैं निम्नलिखित अर्क स्क्रिप्ट को मौरू के उत्तर के एक संस्करण के रूप में प्रस्तावित करता हूं :
BEGIN {
count = 0;
}
{
if ($0 == needle) {
if (count) {
print count;
count = 0;
}
} else {
count++;
}
}
इसे एक पाठ फ़ाइल के रूप में संग्रहित करें, उदाहरण के लिए count-rows.awk
, और इसे निम्न प्रकार से संलग्न करें:
awk -f count-rows.awk -v needle=X input
आप needle
अपनी पसंद के मान को समायोजित कर सकते हैं। इस विधि का लाभ यह है कि आप शेल स्क्रिप्ट से प्रोग्राम को needle
बिना किसी समस्या के भागने के लिए एक मनमाना मान से प्राप्त कर सकते हैं:
awk -f count-rows.awk -v needle="$needle" input