Como definir o separador de campos para uma string vazia?
O manual awk indica que ambos-v FS
e-F
são maneiras equivalentes de definir o separador de campos.
O Guia do Usuário do GNU Awk -> 4.5.4 Configurando FS na linha de comando:
FS pode ser definido na linha de comando. Você usa o argumento -F para fazer isso.
(...)
O valor usado para o argumento de `-F 'é processado exatamente da mesma maneira que as atribuições à variável interna FS.
No entanto, notei que há uma diferença se a definirmos como uma sequência vazia, não é a mesma coisa. Testado no meuGNU Awk 4.1.1
.
Isso funciona:
$ awk -F, '{print $2}' <<< "a,b,c"
b
$ awk -v FS=, '{print $2}' <<< "a,b,c"
b
Mas isso não:
$ awk -F="" '{print $2}' <<< "abc"
# $1 contains abc
$ awk -v FS="" '{print $2}' <<< "abc"
b
Por quê? Isso ocorre porque a configuraçãoFS
esvaziar é umgawk
específico?