vim 和 wc 给出不同的行数

vim and wc give different line counts

我有两个 csv 文件,当我使用 wc -l 时会给出不同的结果(第一个给出 65 行,第二个给出 66 行),当我使用 vim file.csv 然后 :$ 转到文件底部(两者均为 66 行)。我尝试使用 :set list 查看 vim 中的换行符,它们看起来完全相同。

我创建了第二个(它显示了一个带有 wc 的额外行)是使用 Python 和 to_csv 中的 pandas 从第一个创建的。

pandas 中是否有任何可能生成新行的内容或我可以用来验证差异的其他 bash/vim 工具?

如果文件的最后一个字符不是换行符,wc将不算最后一行:

$ printf 'a\nb\nc' | wc -l
2

事实上,这就是 wc -l 的工作原理:来自 man wc

  -l, --lines
          print the newline counts
                    ^^^^^^^^^^^^^