从 .txt 文件中删除扩展 ASCII 字符 Linux 终端

Deleting Extended ASCII characters from a .txt file Linux Terminal

我正在尝试从 .txt 文件生成一个词频列表,我不想让某些 ASCII 可打印字符和所有扩展 ASCII 字符加入词频列表。这是我的通用代码:

cat file.txt | tr -d '[:punct:]' | tr -d '[:digit:]' | tr -d '--3-5' | tr ' ' '\n' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn > Freq.list

此外,我最初尝试了段:tr -d '[:special:]' 但收到错误:tr:无效字符 class special

我想要的代码的一个关键部分是还要确保删除彼此相邻的符号,例如:«•

最后,有没有办法删除附加在单词上的单引号?这样“word or 'word can contribute to word. I've tried tr -d "\"" and tr -d '-' for that but doesn't seem to work.

这里是 file.txt 的例子:
£, 是每单位体积的比热,«•„ 和 cr, 分别是正常区域的导热系数和电导率

我希望输出为:
3
2 和
1 卷
1 个单位
1 热
1 个具体
1个分别
1 个地区
1 个
1 个
1 正常
1 是
1 热
1 电
1 电导率
1 个是

鉴于此文件:

$ cat file
My hovercraft is full of eels
Min luftpudebåd er fyldt med ål
Mon aéroglisseur est plein d'anguilles
โฮเวอร์คราฟท์ของผมเต็มไปด้วยปลาไหล
Iyéčhiŋkiŋyaŋka čha kiŋyáŋ mitȟáwa kiŋ hoká ožúla!

您可以使用 iconv -ct ascii 删除所有非 ascii:

$ iconv -ct ascii < file 
My hovercraft is full of eels
Min luftpudebd er fyldt med l
Mon aroglisseur est plein d'anguilles

Iyhikiyaka ha kiy mitwa ki hok ola!

或者将它们音译成无重音的 ascii,如果有 iconv -t ascii//translit:

$ iconv -t ascii//translit < file
My hovercraft is full of eels
Min luftpudebad er fyldt med al
Mon aeroglisseur est plein d'anguilles
??????????????????????????????????
Iyechi?ki?ya?ka cha ki?ya? mithawa ki? hoka ozula!