Possível solução com awk
:
awk -F',' '$3 == "c" && $5' file
Dependendo dos dados reais, isso pode não funcionar como desejado, como mencionado nos comentários (obrigado Janis por apontar isto: perderá f,g,c,i,0
, por exemplo, 5º campo é 0) para que você possa fazer o seguinte:
awk -F',' '$3 == "c" && $5 != ""' file
E como esta é a resposta aceita que estou adicionando não é tão óbvia forçando o 5º campo para string (como na solução cuonglm (+1)):
awk -F',' '$3 == "c" && $5""' file