繁体   English   中英

从.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 '\33-\64\91-\96\123-\255' | tr ' ' '\n' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn > Freq.list

另外,我最初尝试使用以下段: tr -d '[:special:]'但收到错误:tr:无效的字符类special

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

最后,有没有办法删除附加在单词上的单引号? 这样的话“单词或'单词可以促成单词。为此,我尝试了tr -d "\\""tr -d '\\33-\\64' ,但似乎没有用。

这是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删除所有非iconv -ct 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!

或使用iconv -t ascii//translit其音译为不重读的ascii:

$ 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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM