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

时间:2015-04-08 21:30:48

标签: linux ascii cat tr sentiment-analysis

我正在尝试从.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是

1 个答案:

答案 0 :(得分:0)

鉴于此文件:

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