Se você não se importa em usar uma combinação de awk e grep.
awk -F"," ' {
if ( $2 != "" && $4 ~ /[[:digit:]]{4}(-[[:digit:]]{2}){2} [[:digit:]]{2}(:[[:digit:]]{2}){2}/ ) print
} ' <file> | grep '.*,.*,.*,.*,.*,.*,.*'
EDIT: Uma alternativa ao awk Pure. Obrigado ao @Archemar por apontar isso.
awk -F"," ' {
if ( NF == 7 && $2 != "" && $4 ~ /[[:digit:]]{4}(-[[:digit:]]{2}){2} [[:digit:]]{2}(:[[:digit:]]{2}){2}/ ) print
} ' <file>