bash - 在文本文档中查找各种字符

标签 bash algorithm non-ascii-characters

我有一个包含 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/

相关文章:

python - shell脚本到python脚本的转换

linux - 将 linux 控制台中的所有键入命令及其结果复制到文件中

algorithm - 四舍五入到给定基数的最接近整数幂

bash - 如何知道一个字符是否为回车符?

bash - 如何比较重复目录之间的文件大小匹配?

algorithm - 舍入多边形

algorithm - 用于识别场景的算法是什么

java - 使用java清除html代码和重音符号中的字符串

javascript - 从 JS 读取的 CSV 文件上的平方问号符号

python - 如何在 Python 中将重音字符与正则表达式匹配?