今天在做记录阅读中不会的单词得时候,发现,有些单词我都用文曲星查过不止3次了。感觉很多篇的阅读里面都出现过,确实是个难啃的单词阿~~心里想着干脆把10年的考题中,我错误的单词都用文本记录下来,然后shell排序下,不就知道什么单词我最容易出错了吗~
回家赶紧开始。。
首先,假设创建 2个文本 08 ; 07 (假设是08年考题和07年考题)
假设08文本内容如下:
----------------------------------
infections:传染病
controversy:争议
breast:乳腺癌
intimately:密切的
+be selected to:被选来做...
+be prepared to:准备做...
+be obliged to:只能...,被迫...
+be pleased to:很高兴...
===================
假设07文本内容如下:
-------------------------------------
controversy:争议
breast:乳腺癌
intimately:密切的
+be selected to:被选
+be prepared to:准备
========================
其中,单词和意思是用冒号分隔,词组和意思也是冒号分隔,词组前面加“+“号表示是词组。
对于单词的统计shell如下:
grep '^[a-z]' 0*|awk -F: '{print $3"\t"$2}'|sort +1 -2 | uniq -c -f1 | awk '{print $1"\t"$3"\t\t\t"$2}' | sort -k1,1nr -k2 > word;
=================
显示出来得结果是:
2 breast 乳腺癌
2 controversy 争议
2 intimately 密切的
1 infections 传染病
======================
另外,对于词组,统计的shell如下:
grep -v '^[a-z]' 0*|cut -d+ -f2|tr ' ' '_'|awk -F: '{print $2"\t"$1}'|sort +1 -2 | uniq -c -f1|awk '{print $1"\t"$3"\t\t\t"$2}' | tr '_' ' ' | sort -k1,1nr -k2 > phrase;
====================
显示结果如下:
2 be prepared to 准备
2 be selected to 被选
1 be obliged to 只能...,被迫...
1 be pleased to 很高兴...
=======================
可以看到,词组和单词都被分类了,并且
修正了我最开始得一个bug,因为有些时候,虽然英文是一样的,但是中文却有一点差别,uniq是整行匹配,所以后来做了改进,可以看到例子中蓝色的部分,即使中文翻译有一点差别,只要英文是一样得,都会标记重复次数.
昨天晚上的修改中修正了词组中有空格导致不能正确选取的问题.
刚刚修正了次数是降序,单词是升序的排列.至此,算完美结束了~
下面是完整的shell脚本.
==================================
#/bin/bash ##count word and phrase rm *~; grep '^[a-z]' [0-9]*|awk -F: '{print $3"\t"$2}'|sort +1 -2 | uniq -c -f1 | awk '{print $1"\t"$3"\t\t\t"$2}' | sort -k1,1nr -k2 > word_tmp; grep '^+' [0-9]*|cut -d+ -f2|tr ' ' '_'|awk -F: '{print $2"\t"$1}'|sort +1 -2 | uniq -c -f1|awk '{print $1"\t"$3"\t\t\t"$2}' | tr '_' ' ' | sort -k1,1nr -k2 > phrase_tmp; echo 单词的错误数达到 `cut -f2 word_tmp | wc -w` > tmp; cat tmp word_tmp > word; echo 词组的错误数达到 `cut -f2 phrase_tmp | wc -l` > tmp; cat tmp phrase_tmp > phrase; rm *tmp;