특정 증분으로 디렉토리를 복사하는 스크립트

특정 증분으로 디렉토리를 복사하는 스크립트

0.1, 0.15, 0.2, 0.25, 0.3, 0.35 등의 디렉토리가 있습니다. 이제 디렉터리를 특정 증분(예: 0.1)으로 별도의 디렉터리에 복사하고 싶습니다. 디렉터리 0.1, 0.2, 0.3은 폴더 1로 이동해야 하고, 디렉터리 0.15, 0.25, 0.35는 폴더 2로 이동해야 하는 식으로 진행된다고 가정합니다. 어떻게 하면 쉽게 할 수 있나요?

답변1

특정 질문의 경우 파일 이름의 길이를 사용하여 구별할 수 있습니다.

mv ??? first
mv ???? second

보다 일반적인 경우에 이 문제를 해결하려면 파일 반복 및 기본 산술이 합리적인 Python이나 Ruby와 같은 언어를 사용하고 싶을 것입니다.

답변2

쉘이 지원하는 경우버팀대 확장:

첫 번째 증분의 경우:

mv /path/to/0.{0..99} /path/to/newdirectory/

두 번째 증분:

mv /path/to/0.{0..99}5 /path/to/newdir/

참고: 0및 를 증분의 첫 번째 및 마지막 숫자로 99변경 합니다.{0..99}

답변3

이것은 내가 사용하는 디렉토리 구조입니다

/
--0.1 - file
--0.2 - file
--0.15 - file
--0.25 - file
--first - dir
--second - dir

이제 먼저 0.1 및 0.2 파일을 'first' 디렉터리로 이동하겠습니다.

for f in `ls|grep '^0\.[0-9]$'`;do;mv $f first;done;

다음으로 0.15와 0.25를 dir 'second'로 이동하겠습니다.

for f in `ls|grep '^0\.[0-9][0-9]$'`;do;mv $f second;done

코드에서 grep '<regex>'패턴과 일치하는 모든 파일을 나열하고 mv는 해당 파일을 해당 디렉터리로 이동합니다.

관련 정보