【发布时间】:2014-05-09 15:27:12
【问题描述】:
我试图根据 cygwin 中某些辅音簇的频率对文本进行排序。
首先使用的命令是:
tr 'a-zöäü' 'A-ZÖÄÜ' < text.txt | tr -sc 'BCDFGHJKLMNPQRSTVWXYZ' '\n' |
sort | uniq -c | sort -nr
我认为它做了什么:
将所有小写转换为大写,消除与第一个正则表达式不匹配的所有内容,并在每个字符串后打印一个新行。
它给了我一个这样的列表:
300 N
181 R
157 D
116 S
91 T
82 G
81 M
69 B
65 ND
这已经很不错了,但我只对两个或更多字母的簇感兴趣(所以对我来说有趣的第一个匹配是'ND')。现在我试图用少于两个字母来消除每个字符串。
我尝试了什么:
tr 'a-zöäü' 'A-ZÖÄÜ' < text.txt | tr -sc [BCDFGHJKLMNPQRSTVWXYZ]{2} '\n' |
sort | uniq -c | sort -nr
因为我认为添加 {2} 会匹配任何辅音组合,并排除影响我列表的单个字母 (N,R,D..) - 但实际上它并没有改变任何东西,列表保持不变。
谁能帮帮我?
已经谢谢了。
【问题讨论】: