Solusi Perl:
perl -ne 'print if tr/,// > 4'
-nmembaca file baris demi baris- operator tr mengembalikan jumlah kecocokan.
Untuk mencetak baris dengan kurang dari 4, ubah saja > ke < .
Menggunakan grep perintah:
grep -E '(,.*){5}' myfile
melakukan pekerjaan. Penjelasan:
-E :gunakan Extended Regex...
'(,.*) :... untuk menemukan satu koma diikuti oleh sejumlah karakter, bahkan nol...
{5}' :... dan ulangi pola sebelumnya sebanyak 5 kali.
Jika Anda ingin mengambil baris dengan kurang dari 4 koma, Anda memerlukan:
grep -xE '([^,]*,){0,3}[^,]*' myfile
Kali ini, kita membutuhkan -x jadi polanya berlabuh di awal dan akhir garis sehingga cocok dengan garis penuh. Dan kami menggunakan [^,]* bukannya .* karena yang terakhir akan dengan senang hati mencocokkan string yang berisi , s sebagai . cocok dengan apa saja karakter.
Pendekatan lain adalah membalik dengan -v pendekatan sebelumnya. "Lebih sedikit dari 4" sama dengan tidak "setidaknya 4", jadi:
grep -vE '(,.*){4}' myfile
awk versi:
awk -F, 'NF > 5' myfile