2011-12-16 18 views
18

Necesito grep a toneladas (10k +) de archivos para palabras específicas. ahora que devuelve una lista de archivos que también necesito grep para otra palabra.abrir 100 archivos en vim

i conocer en que grep puede hacer esto por lo que yo uso:

grep -rl word1 * 

que devuelve la lista de archivos que desea comprobar. ahora de estos archivos (más de 100), necesito grep otra palabra. así que tengo que hacer otra grep

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

pero que cuelga, y no hace nada,

por qué?

Respuesta

35

Debido a que tiene un doble `, es necesario utilizar el $()

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

O puede utilizar anidada $(...) (como goblar mencionado)

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

gracias a que lo hagas funcionar – Giraldo

+0

eres bienvenido (lee: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+3

o puedes usar $ (... $ (...)) – goblar

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

es otra opción .

+0

su código está roto: grep -rl 'word1' | - Usas 'y ' – Adam

+0

Gracias, @Adam, corregido. –

Cuestiones relacionadas