我在文件中有很多单词[MM]。
我跑了这个命令:
cat file.txt | tr " " "\n"| sort | uniq > uniq.out
我发现有很多中文单词和一些字母和特殊字符
我希望得到所有只有英语的单词[A-Z] [a-z]
grep -E "[A-Za-z]" uniq.out | grep -Ev "[0-9]" | less
上述命令也匹配字母数字字。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
使用
^[A-Za-z]+$
(你的正则表达式只是说它必须包含1个a-z字符才能算作匹配的行)
答案 1 :(得分:0)
为什么只运行一个命令才能运行四个命令?
英文是用拉丁文写的。因此,这将拉出所有独特的拉丁文字:
$ perl -CSD -nle '$seen{$1}++ || print $1 while /\b(\p{Latin}+)\b/g' input_file.utf8
但你会错过所有带撇号或连字符的单词。当然你也不想要那些吗?
要确切地知道他们是否是有效的英语单词,需要访问一本好的词典,以及拐点的规则。否则你会得到像“xyzzy”这样的误报。