2011-03-10 68 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