Ваш средний сегмент регулярного выражения не учитывал более одной буквы между запятыми, поэтому вы должны были сделать только одну его часть [a-z]*
или [a-z]+
в зависимости от ваших требований к обработке регистра букв нуля .
Некоторые подходы, чтобы рассмотреть возможность найти 2 или более запятых в поле:
$ echo jkl,abc,xyz | awk '$1 ~ /[a-z],[a-z]*,[a-z]/'
jkl,abc,xyz
$ echo jkl,abc,xyz | awk '$1 ~ /([a-z]*,){2,}/'
jkl,abc,xyz
$ echo jkl,abc,xyz | awk '$1 ~ /[^,],[^,]*,[^,]/'
jkl,abc,xyz
$ echo jkl,abc,xyz | awk '$1 ~ /([^,]*,){2,}/'
jkl,abc,xyz
$ echo jkl,abc,xyz | awk 'gsub(/,/,"&",$1) > 1'
jkl,abc,xyz