pumk
如何统计词组?
用 cat file | tr ' ' '/n' | grep -c 'word' 可以统计某个单词的数量,但是如果我想统计的是由2个单词组成的词组呢? 比如一个文件是这样的:
abc def kkk ggg.kkk ggg
kkk ggg 777 666
现在我想统计 kkk ggg 的数量,该怎么办呢?
[color=Red][size=3]注意,第一行的ggg 和kkk之间有个点"."[/size][/color]
[[i] 本帖最后由 pumk 于 2008-6-28 16:48 编辑 [/i]]
pumk
[quote]原帖由 [i]blackold[/i] 于 2008-6-28 16:38 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8692644&ptid=1182912][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
统计:
$ echo "beatutiful girl pretty woman girl" | xargs -n1|sort|uniq -c
1 beatutiful
2 girl
1 pretty
1 woman
[/quote]
比较简练,但是还是不能统计一个词组出现的次数呢。
blackold
不考虑跨行情形。
使用awk:
[code]
$ awk '{ gsub(//<your phrase/>/,"/n&/n") ;print}' urfile | sed '/^ *$/d' | sort | uniq -c |sort [/code]
urfile样本:
[quote]
ayour phrase your phrase
abc def your phrase.your phrase
your phrase.your phrase
your phrase.your phrasek
your phrase
your phrase 777 666
[/quote]
输出:
[quote]
1 777 666
1 .your phrasek
1 abc def
1 ayour phrase
2 .
8 your phrase[/quote]
[[i] 本帖最后由 blackold 于 2008-6-30 12:03 编辑 [/i]]
pumk
[quote]原帖由 [i]blackold[/i] 于 2008-6-30 12:00 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8701677&ptid=1182912][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
不考虑跨行情形。
使用awk:
$ awk '{ gsub(///,"/n&/n") ;print}' urfile | sed '/^ *$/d' | sort | uniq -c |sort
urfile样本:
输出:
[/quote]
确实可以了。谢谢了。