이름 번호를 기준으로 mv 파일을 폴더에 넣습니다.

이름 번호를 기준으로 mv 파일을 폴더에 넣습니다.

폴더가 30개 있습니다.

s-01
s-02
...
s-30

게다가 30개의 파일이 있습니다:

txtFile-001
txtFile-002
...
txtFile-030

다음 작업을 한 번에 수행하는 방법

mv txtFile-001 s-01/txtFile
mv txtFile-002 s-02/txtFile
...
mv txtFile-030 s-30/txtFile

답변1

for 루프를 사용하세요:

for i in $(seq -w 1 30); do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

이는 01명령에 해당 번호가 포함된 모든 번호를 실행하고 호출합니다 30.mv$i

편집하다:그것이 없으면 seq다음과 같이 반복됩니다.

for i in {01..30}; do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

답변2

한 번의 파업?

prename 's!txtFile-0(..)$!s-$1/txtFile!' txtFile*

이는 정규식을 사용하여 txtFile-0nn의 후행 두 자리를 분할하고 이를 디렉터리 접미사로 사용합니다.

관련 정보