我有一个包含 47001 行的 CSV 文档。然而,当我在 Excel 中打开它时,只有 31641 行。
我知道 47001 是正确的行数;它是数据库表的导出,我知道其大小为 47001。另外:wc -l my.csv
返回 47001。
因此,Excel 的解析失败。我怀疑此文档中的某处存在一些古怪的控件或空白字符。
如何找出某些文档中使用的字符种类?
例如,考虑这个输入文件:ABCAAAaaa\n
。
我希望文件中使用的字符字母表为:ABCa\n
。
也许如果我们压缩它,我们可以以某种方式读取 Huffman Tree ?
我怀疑比较 UTF-8 字符种类和 ASCII 字符种类会很有教育意义。例如:Excel 可能会解析 ASCII 中的多字节字符,从而将某些字节解释为控制代码点。
最佳答案
如果你在 linux 上,我们就开始吧(背后的逻辑对所有人来说都是一样的,但对于 linux 我给出了命令):
sed 's/./&\n/g' | sort -u | tr -d '\n'
发生了什么: - 首先逐个字母替换所有字母,然后是“\n”[新行] - 然后对所有字符进行排序并打印出现的唯一性 - 删除所有的“\n”
然后是输入文件:
ABCAAAaaa
将变成:
A
B
C
A
A
A
a
a
a
排序后:
a
a
a
A
A
A
A
B
C
然后在 uniq 之后:
A
B
C
a
最终输出:
aABC
关于bash - 在文本文档中查找各种字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42695979/