이 파일 이름을 가진 파일이 여러 개 있는데 이름을 이렇게 바꾸고 싶습니다.
현재의:
file_name.mt0
file_name.mt1
file_name.mt2
file_name.mt3
file_name.mt4
file_name.mt5
file_name.mt6
file_name.mt7
file_name.mt8
file_name.mt9
file_name.mt10
file_name.mt11
새로운:
file_name.mt0000
file_name.mt0001
file_name.mt0002
file_name.mt0003
file_name.mt0004
file_name.mt0005
file_name.mt0006
file_name.mt0007
file_name.mt0008
file_name.mt0009
file_name.mt0010
file_name.mt0011
미리 감사드립니다~~
답변1
다음 스크립트로 이 작업을 수행할 수 있습니다.
#! /usr/bin/ksh
typeset -Z4 N
find . -name 'file_name.mt*' | while read FN
do
N=${FN#./file_name.mt}
mv $FN file_name.mt$N
done
답변2
Larry Walls의 간단하면서도 강력한 이름 바꾸기 명령이 올바른 선택입니다.
rename 's/(\d+)$/sprintf("%04d",$1)/e' file*
답변3
#!/bin/bash
for i in file_name*; do
nf=`printf "file_name.mt%04d" ${i//[!0-9]/}`;
mv $i $nf;
done
다음은 원하는 작업을 수행하는 bash 스크립트입니다. ls를 제거하고 glob을 사용했습니다. 훌륭한 참고자료 @Sparkhawk