← 全部文章

技术与生活 / 一篇记录

一个文本文件到底有多少行?

终端看起来显示了两段文字,文件内部却未必包含两个换行符。wc 的不同选项对应不同计数方式,中文字数、编码字节和换行数量之间不能直接互换。

先明确这里的区别

行数、字节数和字符数是不同指标,先弄清口径再判断文件是否完整。

以下示例面向常见 GNU/Linux 环境,文件名为实验用占位名称。

printf 'one\ntwo\n' | wc -l

怎样判断处理正确

示例结果应为两行,再试一个末尾没有换行的文件。

分别准备带结尾换行与不带结尾换行的样本,观察 wc -l 的差别。处理导出文件时,应先约定行的格式,再用计数结果判断是否缺少记录。

处理按行导出的数据时,先明确表头是否计入记录。空行和结尾换行也应有一致约定。若实际格式允许字段跨行,物理行数就不能直接代表业务记录数量,需要由解析器统计。

需要留意的是,wc -l 统计换行符,末行没有换行时容易产生误解。

参考:Linux 文档。

搜索文章

输入关键词,找回一篇记录。