파일 이름을 지속적으로 변경

파일 이름을 지속적으로 변경

폴더 이름이 다음과 같은 폴더가 있습니다.

enum_1              enum_118  enum_140  enum_16   enum_178  enum_209  enum_227  enum_246  enum_27   enum_45  enum_63  enum_88
enum_10             enum_119  enum_141  enum_160  enum_179  enum_21   enum_228  enum_247  enum_28   enum_46  enum_64  enum_9
enum_100            enum_12   enum_142  enum_161  enum_18   enum_210  enum_229  enum_248  enum_29   enum_47  enum_65  enum_90
enum_102            enum_120  enum_143  enum_162  enum_180  enum_211  enum_23   enum_249  enum_3    enum_48  enum_66  enum_91
enum_103            enum_121  enum_144  enum_163  enum_181  enum_212  enum_230  enum_25   enum_30   enum_49  enum_67  enum_92
enum_104            enum_122  enum_145  enum_164  enum_182  enum_213  enum_231  enum_250  enum_31   enum_5   enum_68  enum_93
enum_105            enum_123  enum_146  enum_165  enum_183  enum_214  enum_232  enum_251  enum_32   enum_50  enum_69  enum_94
enum_106            enum_124  enum_147  enum_166  enum_184  enum_215  enum_233  enum_252  enum_33   enum_51  enum_7   enum_95
enum_107            enum_125  enum_149  enum_167  enum_185  enum_216  enum_234  enum_253  enum_34   enum_52  enum_70  enum_96
enum_108            enum_126  enum_15   enum_168  enum_186  enum_217  enum_235  enum_254  enum_35   enum_53  enum_71  enum_98
enum_109            enum_127  enum_150  enum_169  enum_187  enum_218  enum_236  enum_255  enum_36   enum_54  enum_72  enum_99

나는 그들 모두의 이름을 바꾸고 싶습니다.

enum_00001 enum_00118 ...

어떻게 달성해야 합니까? 감사합니다.

답변1

printf루프에서 이름의 숫자 부분 형식을 적절하게 지정하는 데 사용합니다 .

for name in enum_*; do
    mv -i -- "$name" "$( printf 'enum_%05d' "${name#*_}" )"
done

${name#*_}원래 이름의 숫자 부분으로 확장됩니다. 즉, 73for ( 이름의 enum_73첫 번째 항목까지 모든 것을 제거함 )입니다. _형식 enum_%05d지정 문자열은 이 정수의 형식을 지정하여 접두사가 0으로 채워진 5자리 숫자가 됩니다 enum_. 즉 enum_00073, .

답변2

펄을 사용하면 rename:

prename 's/(\d+)/sprintf "%05d", $1/e' enum_*

답변3

또 다른세게 때리다변화:

#!/bin/bash
for fname in enum_*
do
    IFS=_ read n d <<< $fname   # splitting file name by separator `_`
    mv "$fname" "$(printf '%s_%05d' $n $d)"
done

관련 정보