2010-06-16 2 views
0

여러 파일에서 특정 작업에 grep을 원합니다. 변수 테스트에는 여러 파일이 저장됩니다.솔라리스에서 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

+0

@pra, true - 그의 접근 방식보다 낫다. –

0

없음 인용 같아요 필요하지 않습니다.

grep "word" $TESTING 

나를 위해 일합니다 (우분투, bash).