grep
Kode paling sederhana yang akan berfungsi:
grep -xE '([^,]*,){10}[^,]*'
Penjelasan:
-x
memastikan 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 e
atau 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.
sed
ada di sini) hanya sejauh satu kecocokan lebih dari yang dicari, meskipun pertanyaan ini. Anda seharusnya tidak menutup ini.