源于一个文字游戏的题目

独立博客地址:http://cxh.me/2015/01/05/a-word-puzzle/

起源是这样一道题目:

于是想到通过word dict来算一下:

先去下载了中文词库:

git clone git@github.com:ling0322/webdict.git 

然后去掉词频信息:

awk  '{ if (length($1)==2) print $1}' webdict_with_freq.txt >webdict.txt

先按照出现位置来正则过滤候选集,并且去掉大/日/风/思四个字:

grep '^大.*' webdict.txt| sed 's/大//g' >da.txt
grep '^日.*' webdict.txt| sed 's/日//g' >ri.txt
grep '.*风$' webdict.txt| sed 's/风//g' >feng.txt
grep '.*思$' webdict.txt| sed 's/思//g' >si.txt  

之后的事情就很有意思了,每次join两个文件,因为大/日/风/思四个字是没有交集的,所以结果就是要求的字:

comm -12 <(sort da.txt|uniq ) <(sort ri.txt|uniq ) >da_ri.txt
comm -12 <(sort feng.txt|uniq ) <(sort da_ri.txt|uniq ) >da_ri_feng.txt
comm -12 <(sort si.txt|uniq ) <(sort da_ri_feng.txt|uniq ) >da_ri_feng_si.txt

最后的凶手答案只有一个:

谢谢观看~。

参考文献:

1 ] LINUX Shell 下求两个文件交集和差集的办法, http://blog.csdn.net/autofei/article/details/6579320


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值