2010-06-16 5 views
0

Je veux grep pour un travail particulier dans plusieurs fichiers. Plusieurs fichiers sont stockés dans des tests variables.En ce qui concerne grep dans solaris

TESTING=$(ls -tr *.txt) 

echo $TESTING 
test.txt ab.txt bc.txt 

grep "word" "$TESTING" 
grep: can't open test.txt 
ab.txt 
bc.txt 

En me donnant une erreur. Y a-t-il un autre moyen de le faire autre que pour la boucle?

Répondre

2

Enlevez les guillemets de $TESTING.

grep "word" $TESTING 

Les guillemets doubles font votre liste de fichier entier étendre à un seul argument à grep. Le droit façon de le faire est:

find . -name \*.txt -print0 | xargs -0 grep "word" 
+1

Vous supposez qu'il veut grep les fichiers dans les sous-répertoires. Si non, alors je pense que vous êtes coincé avec: grep word * .txt. – pra

+0

@pra, vrai - certainement mieux que son approche. –

0

Pas besoin de devis je suppose.

grep "word" $TESTING 

fonctionne pour moi (Ubuntu, bash).