특정 텍스트가 포함된 파일을 검색하고 해당 파일을 다른 디렉터리에 복사합니다.

특정 텍스트가 포함된 파일을 검색하고 해당 파일을 다른 디렉터리에 복사합니다.

특정 텍스트가 포함된 디렉토리에서 파일을 검색하고 다른 디렉토리에 복사하려면 어떻게 해야 합니까? .ksh 쉘을 사용하고 있습니다.

답변1

해보고 깃발 man xargs을 보세요 -I.

find /path/to/directory -type f -exec grep -il "your pattern" {} \; | xargs -I % cp % /dest/dir/

입력을 저장하려면 다음 명령을 쉘 스크립트에 입력하십시오.

#!/usr/bin/ksh 
# Script name: locate
find /path/to/directory -type f -exec grep -il "$1" {} \; | xargs -I % cp % /dest/dir/

실행하려면 검색하려는 텍스트가 locate searchstring어디에 있는지 입력하세요.searchstring

답변2

검색하려는 기본 디렉토리에서 간단히 수행할 수 있습니다.

cp $(grep -r -l "the pattern" *) target_directory
  • grep -r재귀적이라는 뜻
  • -l이는 일치하는 항목이 아닌 파일 경로를 나열한다는 의미입니다.

  • 명령을 입력하면 $()명령이 실행되고 결과가 외부 명령에 배치됩니다.

  • cp는 파일 목록을 가져오고 마지막 경로가 디렉터리인 경우 모든 파일을 거기에 복사합니다.

관련 정보