Sebagian besar jawaban di sini cocok dengan konten baris yang akan dihitung menggunakan ekspresi reguler yang disematkan ke dalam program Awk. Jika Anda perlu mencocokkan baris dengan konten yang mungkin mengandung karakter khusus (baik untuk Awk atau ekspresi reguler), akan lebih baik untuk benar-benar membandingkan string untuk kesetaraan. Karena itu saya mengusulkan skrip Awk berikut sebagai varian dari jawaban muru :
BEGIN {
count = 0;
}
{
if ($0 == needle) {
if (count) {
print count;
count = 0;
}
} else {
count++;
}
}
Simpan sebagai file teks, mis. count-rows.awk
, Dan aktifkan sebagai berikut:
awk -f count-rows.awk -v needle=X input
Anda dapat menyesuaikan nilai needle
sesuai keinginan Anda. Keuntungan dari metode ini adalah Anda dapat menjalankan program dari skrip shell dengan nilai arbitrer needle
tanpa melarikan diri dari masalah:
awk -f count-rows.awk -v needle="$needle" input