누구든지 내 요구 사항에 대한 솔루션을 찾는 데 도움을 줄 수 있습니까?
요구 사항은 디렉토리를 스캔하고 해당 디렉토리에 들어오는 모든 파일을 읽고 "AB00732614"와 같이 시작하는 문자열을 검색하는 쉘 스크립트를 작성해야 한다는 것입니다. AB*가 포함된 모든 파일을 검색한 다음 파일을 다른 디렉토리로 이동합니다.
답변1
문자열 AB
등을 가정합니다. 의 일부입니다콘텐츠이동할 파일 수:
find /path/to/dir -type f -exec grep -qE 'AB[0-9]{8}' {} \; -exec mv -i {} /path/to/destination/ \;
find
이는 조회 에 사용됩니다 /path/to/dir
. 각 파일에 대해 grep
확장 정규식(8자리 숫자가 뒤에 오는 문자열 ) AB[0-9]{8}
과 일치하는 항목이 포함되어 있는지 확인합니다. AB
그렇다면 파일은 디렉토리로 이동됩니다 /path/to/destination/
.
이동하려는 파일과 동일한 이름의 다른 파일이 대상 디렉터리에 이미 존재하는 경우 해당 파일을 덮어쓸지 여부를 확인해야 합니다.
답변2
당신은 그것을 사용할 수 있습니다 :
find . -type f -iname 'AB*' -exec mv -t ./another_directory/ {} \+
여기에는 매우 잘 설명되어 있습니다.https://stackoverflow.com/a/5607677