2014-02-13 9 views
0

현재 수백 개의 폴더에 작은 파일이있는 디스크에 3TB의 데이터가 있습니다. 특정 텍스트 파일에 특정 단어 (두 단어 이상)가 포함되어 있어야합니다. 나는 이미 grep-ping을 시도해 보았습니다. 이것은 모든 파일의 경로를 인쇄 할 때 작동합니다. 그러나 이것은 긴 목록이며 다른 폴더로 복사 할 수있는 유용한 방법을 찾고 있습니다.약간의 도움이 필요합니다. grep 및 copy에 대한 올바른 구문이 필요합니다.

어떤 아이디어가 있습니까?

-exec cp -rv/estinationfolder를 구문에 넣고 모든 결과를 폴더에 복사 할 수있는 방법이 있습니까?

+0

질문에 언급하지 마십시오 : 모든 단어가 포함되어 있으면 파일이 일치합니까, 아니면 하나만 포함되어 있어도 일치합니까? – sanmiguel

답변

0

예, 확실한 방법이 있습니다.

grep 출력을 복사 명령으로 파이프하고 필요한 대상 디렉토리를 제공 할 수 있습니다. 여기

find . -type f | xargs grep -l "textToSearch" | cpio -pV $destination_path 

이 스크립트의 전체 경로를 유지하면서, 그것은 파일을 복사됩니다 이것에 destination_path를 변수

제일 부분에 제공 대상 경로에 파일을 복사하는 예입니다.

+0

파일에 공백이 포함되면 어떻게 될까요? (아무것도 좋지 않다). 그런 특별한 경우에 대한 답을 테스트 했습니까? –