Para usar ␣(
(espaço + parênteses) como separador de campo em awk
, use "␣\\("
:
$ echo "a (b (c" | awk -F " \\(" '{ print $1; print $2; print $3 }'
a
b
c
Como alternativa, use aspas simples e duas barras invertidas:
$ echo "a (b (c" | awk -F ' \(' '{ print $1; print $2; print $3 }'
a
b
c
A razão para isso é que ␣(
(um parêntese único com um espaço à esquerda) é uma expressão regular malformada. O parêntese esquerdo abre um agrupamento que nunca é fechado. É por isso que ele precisa escapar.
A razão pela qual (
(um parêntese único sem um espaço à esquerda) funciona é que quando FS
é um único caractere, ele não é tratado como expressão regular.