Buradaki yanıtların çoğu, Awk programına katıştırılmış normal ifadeler kullanılarak sayılacak satırın içeriğiyle eşleşir. Satırları özel karakterler (Awk veya normal ifadeler için) içerebilecek içerikle eşleştirmeniz gerekiyorsa, dizeleri eşitlik açısından karşılaştırmak daha iyi olur. Bu nedenle, aşağıdaki Awk betiğini muru cevabının bir çeşidi olarak öneriyorum :
BEGIN {
count = 0;
}
{
if ($0 == needle) {
if (count) {
print count;
count = 0;
}
} else {
count++;
}
}
Örneğin count-rows.awk
, bir metin dosyası olarak saklayın ve aşağıdaki gibi çağırın:
awk -f count-rows.awk -v needle=X input
Değerini needle
beğeninize göre ayarlayabilirsiniz . Bu yöntemin avantajı, needle
sorunlardan kaçmadan rastgele bir değer içeren bir kabuk komut dosyasından programı çağırabilmenizdir :
awk -f count-rows.awk -v needle="$needle" input