2011-12-16 70 views
18

我需要grep到特定单词的文件吨(10k +)。 现在返回一个我还需要grep另一个单词的文件列表。在vim中打开100个文件

我发现一些grep能够做到这一点,所以我使用:

grep -rl word1 * 

返回我要检查的文件列表。 现在从这些文件(100+),我需要grep另一个词。所以我必须做的另一个grep,

vim `grep word2 `grep -rl word1 *`` 

但挂,它没有做任何事情,

为什么呢?

回答

35

因为你有一个双`,您需要使用$()

vi `grep -l 'word2' $(grep -rl 'word1' *)` 

或者你可以使用嵌套$(...)(如提及goblar)

vi $(grep -l 'word2' $(grep -rl 'word1' *)) 
+0

谢谢你预定它的工作 – Giraldo 2011-12-16 15:54:20

+0

你是非常欢迎的(请阅读:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – 2011-12-16 15:55:11

20
grep -rl 'word1' | xargs grep -l 'word2' | xargs vi 

是另一种选择。