특정 텍스트가 포함된 디렉토리에서 파일을 검색하고 다른 디렉토리에 복사하려면 어떻게 해야 합니까? .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는 파일 목록을 가져오고 마지막 경로가 디렉터리인 경우 모든 파일을 거기에 복사합니다.