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

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

특정 텍스트가 포함된 파일을 디렉토리에서 검색하여 다른 디렉토리에 복사하는 방법은 무엇입니까? .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일치하는 파일 대신 파일 경로가 나열됨을 나타냅니다.

  • put $()명령은 이를 실행하고 결과를 외부 명령에 배치합니다.

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

관련 정보