O caractere ASCII do separador de unidades (ASCII 31, octal 37) é visível no Vim como a ^_
. Mas se eu imprimir o mesmo arquivo no terminal, o caractere será invisível. Isso faz com que os campos em uma linha fiquem presos juntos:
# In Vim and less:
first field^_second field^_last field
# cat the same file to terminal:
cat delim.txt
first fieldsecond fieldlast field
# print 2nd field with awk
cat delim.txt | awk 'BEGIN {FS = "\037"} {print $2}'
second field
Suponho que posso tornar o separador de unidades visível com cat -v:
cat -v delim.txt
first field^_second field^_last field
Mas isso é bastante complicado. Por que o separador de unidades não tem uma representação visível quando impresso em stdout no shell Bash? Não consigo nem copiar e colar a saída do shell corretamente; o separador de unidades se perde no processo.