一位同事注意到,当创建具有特定不可打印字符的文件时,perl 会替换它们。在这种情况下,\x09 被替换为 \x20。
echo `perl -e 'print "\x41"x40 . "\xc4\x09\x40"'` > test.out
当您查看生成的文件时:
xxd test.out
你看:
0000000: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0000010: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0000020: 4141 4141 4141 4141 c420 400a AAAAAAAA. @.
注意最后 3 个字节是 \xc4、\x20、\x40 而不是 \xc4、\x09、\x40。没有人能够向我们解释这一点。获得 \x09 的唯一方法是使用十六进制编辑器手动编辑 test.out 文件。有什么想法吗?