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