Na documentação do bash:
Words of the form $'string' are treated specially. The word expands to
string, with backslash-escaped characters replaced as specified by the
ANSI C standard. Backslash escape sequences, if present, are decoded
as follows:
\a alert (bell)
(...)
\nnn the eight-bit character whose value is the octal value
nnn (one to three digits)
\xHH the eight-bit character whose value is the hexadecimal
value HH (one or two hex digits)
Então, no exemplo que você postou, $'\x01'
é apenas o personagem com
código 1, conforme sua descrição. Do meu (muito limitado) teste, este
parece ser suportado por zsh também:
$ printf %s $'\x01' | od -t x1
0000000 01
0000001
No entanto, o comando tr
que você postou só resolverá seu problema
se assumirmos que seu arquivo na verdade contém o caractere literal
com o código 1; parece a partir dos comentários que o que você tem em vez
é a string de quatro caracteres \x01
em que o caractere de tabulação deve
estar. O filtro a seguir deve corrigir essa condição:
sed 's/\x01/\t/g'