不同文件查找相同关键字

sh/bash/dash/ksh/zsh等Shell脚本
回复
kevin_chu
帖子: 45
注册时间: 2007-09-01 21:14

不同文件查找相同关键字

#1

帖子 kevin_chu » 2009-02-16 10:38

有几个文件,其中有个文件是一些关键字,我想利用这些关键字去比对这几个文件中那些关键字是相同的,然后把关键字在文件中的位置(行数)保存到一个文件中。如:
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(同上)
如何找出相同的关键字?并把关键字在某个文件的行数保存到一个文件中。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#2

帖子 eexpress » 2009-02-16 10:43

for j in blog*; do cat keyfile| while read i; do grep -n $i $j >resultfile; done; done
确定你的关键词,在keyfile是单独行的。
基本是这样写
● 鸣学
kevin_chu
帖子: 45
注册时间: 2007-09-01 21:14

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

#3

帖子 kevin_chu » 2009-02-16 16:32

不好意思,我没有表述清楚。
我的想要的是这几个文件中共有的那个关键词。
如果不能输出具体情况,只输出共有的关键词到一个文件中也可以。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#4

帖子 eexpress » 2009-02-16 16:37

。。。
那你不如全部cat。然后sort排序,多于2个结果的,输出。
uniq -cd|sort -nr 类似这样的。
● 鸣学
kevin_chu
帖子: 45
注册时间: 2007-09-01 21:14

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

#5

帖子 kevin_chu » 2009-02-16 21:24

如果把每个文件都与关键字文件比较,然后取出相同的关键字,然后输入到不同文件中,将生成的文件在以某个文件为关键字文件比较其它的,再生成文件,再比较……直到生成最后一个文件。
这样可以么?好像就是太复杂了。
kevin_chu
帖子: 45
注册时间: 2007-09-01 21:14

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

#6

帖子 kevin_chu » 2009-02-19 19:43

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,我用的追加到文件,这样文件就是全部结果了。
回复