grepKode paling sederhana yang akan berfungsi:
grep -xE '([^,]*,){10}[^,]*'
Penjelasan:
-xmemastikan bahwa polanya harus cocok dengan seluruh garis, bukan hanya sebagian saja. Ini penting agar Anda tidak mencocokkan garis dengan lebih dari 10 koma.
-E berarti "regex diperpanjang", yang membuat lebih sedikit garis miring terbalik di regex Anda.
Tanda kurung digunakan untuk pengelompokan, dan {10}setelah itu berarti harus ada tepat sepuluh pertandingan dalam satu baris pola di dalam tanda kurung.
[^,]adalah kelas karakter — misalnya, [c-f]akan cocok dengan karakter tunggal apa pun yang a c, a d, a eatau a f, dan [^A-Z]akan cocok dengan karakter tunggal apa pun yang BUKAN huruf besar. Jadi [^,]cocok dengan setiap karakter kecuali koma.
The *setelah sarana kelas karakter "nol atau lebih dari ini."
Jadi bagian regex ([^,]*,)berarti "Karakter apa pun kecuali koma beberapa kali (termasuk nol kali), diikuti oleh koma" dan {10}menentukan 10 di antaranya. Kemudian [^,]*untuk mencocokkan sisa karakter non-koma ke akhir baris.
sedada di sini) hanya sejauh satu kecocokan lebih dari yang dicari, meskipun pertanyaan ini. Anda seharusnya tidak menutup ini.