计算hash-object中的错误,内容为'1'字符?

问题描述 投票:0回答:1

我有一个git文件(例如file1.txt),在其中我有字符1。 echo -e 1 | git hash-object --stdin => d00491...39d4d。 但它并不好 echo -en 'blob 2\01\n' | shasum ==>a1ff5...f6df因为它不考虑1作为字符并计算\01作为seprate character.=> blob 2

我发现这种类型的转换不使用数字内容。

但从字母表开始很好!!如 。 echo -e 'blob 2\0w' | shasum ==> e556b8...52efecho w | git hash-object --stdin ==> e556b830c...052ef

对于calc hash-object的任何想法,从纯数字内容开始?

bash git hash git-bash
1个回答
2
投票
echo -en 'blob 2\01\n' | cat -v

没有产生你想要的,结果是blob 2^A而不是blob 2^@1

你想要的是什么

echo -en 'blob 2\00001\n' | cat -v
blob 2^@1

这是因为\0echo启动数字序列,然后echo预计最多3位数。那就是\01echo是1个字符,代码为1;要生成\0 + 1你需要使用\0000代码为0的字符,然后下一个字符是1。

echo -en 'blob 2\00001\n' | sha1sum 
d00491fd7e5bb6fa28c517a0bb32b8b506539d4d  -

瞧!

© www.soinside.com 2019 - 2024. All rights reserved.