gpt4 book ai didi

c - C 程序的文件输出在计算行数时表现异常

转载 作者:行者123 更新时间:2023-12-04 21:44:16 24 4
gpt4 key购买 nike

我正在使用 C 解析大型平面文件并将相关行输出到输出文件中。输出文件应该在 70,000 行左右。

如果我在 gedit 中打开文件,它会完全按照预期显示,行数和行长都正确。

但是,运行 wc -l <file>返回 13,156。 grep -c "" <file>也是如此.

tail <file>返回我在 gedit 中看到的最后 10 行。 head <file>返回前 10 行。但是tail -n +8000 | head -n 1 ,它应该返回第 8,000 行,返回我在 gedit 中第 34,804 行看到的文本。

如果我在文件中缺少换行符,我会期待这些结果。但是 gedit 似乎没有问题。此外,wc -L <file> ,显示最大行长度,按预期返回 142 字节。正如预期的那样,文件的大小略高于 9,000,000 字节。

如果wc -L <file> = 142,和 wc -c <file> = 9046609,那怎么可以wc -l <file> = 13156?

有人知道我在写入这个文件时做错了什么吗?

最佳答案

这可能是返回 ('\r') 和换行 ('\n') 字符的一些奇怪组合。

假设您有 GNU Coreutils 版本的“tr”,您可以使用这些命令来计算文件中每个字符的数量:

tr -d -c '\n' FILE | wc -c

tr -d -c '\r' FILE | wc -c

对于普通的 Unix 风格的文本文件,第二条命令应打印 0。对于 Windows 风格的文本文件,两者应打印相同的数字。

"file"命令也可能会告诉您一些有用的信息。

关于c - C 程序的文件输出在计算行数时表现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6802714/

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