分页: 1 / 1

不同文件查找相同关键字

发表于 : 2009-02-16 10:38
kevin_chu
有几个文件,其中有个文件是一些关键字,我想利用这些关键字去比对这几个文件中那些关键字是相同的,然后把关键字在文件中的位置(行数)保存到一个文件中。如:
blog1: a b c d e f (每个字母在单独一行)
blog2: b e k g h t(同上)
blog3:e t g y z q w v c (同上)
关键字: e c f b(同上)
如何找出相同的关键字?并把关键字在某个文件的行数保存到一个文件中。

Re: 不同文件查找相同关键字

发表于 : 2009-02-16 10:43
eexpress
for j in blog*; do cat keyfile| while read i; do grep -n $i $j >resultfile; done; done
确定你的关键词,在keyfile是单独行的。
基本是这样写

Re: 不同文件查找相同关键字

发表于 : 2009-02-16 16:32
kevin_chu
不好意思,我没有表述清楚。
我的想要的是这几个文件中共有的那个关键词。
如果不能输出具体情况,只输出共有的关键词到一个文件中也可以。

Re: 不同文件查找相同关键字

发表于 : 2009-02-16 16:37
eexpress
。。。
那你不如全部cat。然后sort排序,多于2个结果的,输出。
uniq -cd|sort -nr 类似这样的。

Re: 不同文件查找相同关键字

发表于 : 2009-02-16 21:24
kevin_chu
如果把每个文件都与关键字文件比较,然后取出相同的关键字,然后输入到不同文件中,将生成的文件在以某个文件为关键字文件比较其它的,再生成文件,再比较……直到生成最后一个文件。
这样可以么?好像就是太复杂了。

Re: 不同文件查找相同关键字

发表于 : 2009-02-19 19:43
kevin_chu
eexpress 写了:for j in blog*; do cat keyfile| while read i; do grep -n $i $j >resultfile; done; done
确定你的关键词,在keyfile是单独行的。
基本是这样写
我这么写的do cat keyfile| while read i; do grep -n $i blog* >> resultfile; done; done,我用的追加到文件,这样文件就是全部结果了。