Usando o GNU awk
:
$ awk -F' *, *' '$3' file
x, xx, xxx, xxxx, , , ,
Com -F
, definimos o separador de campo para a expressão regular ␣*,␣*
(espaço, estrela, vírgula, espaço, estrela). Essa expressão corresponde a qualquer vírgula cercada por zero ou mais espaços.
O script awk
real é apenas $3
, o que significa que, se o terceiro campo não estiver vazio, a linha será impressa.