gpt4 book ai didi

vim - 为什么写入文件会更改内容(哈希)?

转载 作者:行者123 更新时间:2023-12-04 01:25:24 27 4
gpt4 key购买 nike

我注意到,在使用 vim 将它们复制粘贴到文件中后尝试生成一些散列时,散列不是它应该的样子。打开和写出文件时相同。与 nano 的行为相同,所以一定有我遗漏的地方。

$ echo -n  "foo" | openssl dgst -sha256
2c26...e7ae
$ echo -n "foo" > hash.txt
$ openssl dgst -sha256 hash.txt
SHA256(hash.txt)= 2c26...e7ae

但是当我用 nano 或 vim 打开 hash.txt 并在不插入任何内容的情况下退出时,我随后得到以下哈希:b5bb...944c

我还注意到,如果不打开文件并写出,在使用 cathead 时我看不到输出。编码是否更改?

最佳答案

大多数文本编辑器,包括 Vim,都会在您退出时在末尾添加一个换行符来保存文件。这是因为根据 POSIX,文本文件要么为空,要么以换行符结尾,因此大多数用户都期望并想要这种行为。

正如您所注意到的,在末尾添加一个换行符会更改散列,并且您获得的散列与序列 foo\n 一致,其中 \n 是一个换行符。

如果你有足够新的 Vim,你可以通过设置 nofixeol 来控制上面提到的行为,这将在最后一行保留现有的行尾,或者没有行尾。

关于vim - 为什么写入文件会更改内容(哈希)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62026535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com