2011-12-16 15 views
18

Ho bisogno di grep to tons (10k +) di file per parole specifiche. ora che restituisce un elenco di file che ho anche bisogno di grep per un'altra parola.aprire 100 file in vim

che ho trovato su che grep può fare questo in modo che uso:

grep -rl word1 * 

che restituisce l'elenco dei file voglio controllare. ora da questi file (100+), ho bisogno di grep un'altra parola. quindi devo fare un altro grep

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

ma che si blocca, e non fa nulla,

perché?

risposta

35

perché si ha un doppio `, è necessario utilizzare il $()

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

Oppure si può usare nidificato $(...) (come goblar citato)

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

grazie libro lavoro – Giraldo

+0

sei il benvenuto (leggi: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+3

oppure puoi usare $ (... $ (...)) – goblar

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

è un'altra opzione .

+0

il tuo codice è rotto: grep -rl 'word1' | - usi 'e' – Adam

+0

Grazie, @Adam, risolto. –

Problemi correlati