2011-03-10 73 views
1

我认为这是一个简单的命令仅但我根本无法来解决猫文件或标签和xargs的grep的标签在文件

我想猫的标签的文件(由很多分隔线)

File1中

AAA BBB
DED

,然后用grep这些标签(逐行)到一个文件,让调用它的TargetFile

我所做的是以下几点:

cat File1 | xagrs grep {} TargetFile 

它不会做的grep上的TargetFile。我该怎么做?

我使用​​目前

回答

-1

好,我想我找到了答案在其他论坛

> for i in `cat File1` ; do grep $i TargetFile; done 
1

像往常一样搜索做的不止一种方法后:

xargs -n 1 grep Targetfile -e < File 
0

根据文件的大小,这将运行得更快:

cat File1 | parallel -j0 grep {} TargetFile 

如果File1中的标记数量少于可以并行运行的进程数量,则TargetFile将只从磁盘读取一次。如果TargetFile比磁盘缓存大,这可能是一个好主意。

要了解更多有关GNU并行看介绍视频:http://www.youtube.com/watch?v=OpaiGYxkSuQ

+0

我喜欢尝试并行。我已经看到了一些并行的例子,我认为它是相当不错的工具。但不幸的是,它并没有汇编在mobaxterm中。希望他们在网上的蜘蛛可以在这里看到我的评论。 – user642318 2011-03-11 04:18:58

3
fgrep -f File1 TargetFile 

还要注意没有猫无用的使用。

-1
cat File1 | while read tag; do grep $tag TargetFile; done 
0
cat File1 | xagrs -i grep {} TargetFile 
1
cat File1 | xargs -I {} grep {} TargetFile