Eu li sobre o comportamento de divisão do Awk aqui:
[...] o argumento fs para a função split (veja String Functions) deve ser interpretado como expressões regulares estendidas. Estes podem ser tokens ERE ou expressões arbitrárias e devem ser interpretados da mesma maneira que o lado direito do operador
~
ou .!~
e:
Se o operando do lado direito for qualquer expressão diferente do token léxico ERE , o valor da string da expressão deve ser interpretado como uma expressão regular estendida, incluindo as convenções de escape descritas acima.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html#tag_20_06_13_04
No entanto, notei um resultado inesperado, com este código:
BEGIN {
print split("te.st", q, ".")
}
Eu esperaria que o .
representasse qualquer personagem e que o resultado fosse 6
. No entanto, todos os meus testes retornaram 2
. A execução deste código fornece o esperado 6
:
BEGIN {
print split("te.st", q, /./)
}
Testado com:
- bocejar
- gawk --posix
- 1.3.4
- 1.3.3
- nawk (original-awk)
Estou entendendo mal a documentação ou isso é um erro?