2010-06-16 46 views
0

我希望grep對於多個文件中的特定工作。多個文件存儲在變量測試中。關於solaris中的grep

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 

給了我一個錯誤。除了循環之外,還有其他方式可以做到嗎

回答

2

$TESTING左右取雙引號。

grep "word" $TESTING 

雙引號使整個文件列表展開爲一個參數grep。該正確的方式來做到這一點是:

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

你假設他想grep子目錄中的文件。如果沒有,那麼我認爲你被困在:grep word * .txt。 – pra 2010-06-16 21:59:36

+0

@pra,真的 - 肯定比他的方法更好。 – 2010-06-16 23:54:16

0

無需引號我猜。

grep "word" $TESTING 

適合我(Ubuntu,bash)。