방금 수백 개의 파일을 생성하고 이를 디렉토리에 저장하는 스크립트를 작성했습니다 ~/foo
. 이러한 파일 의 ~/foo/X-file
범위 X
는 . 내 문제는 파일을 번호순으로 보고 싶지만 파일이 0으로 채워지지 않는다는 것입니다. 따라서 이 디렉토리에는 다음이 포함 됩니다 . 이러한 파일을 앞에 0으로 채울 수 있는 방법이 있습니까?X=1
X=900
17-file
544-file
답변1
cd ~/foo
for i in *-file; do
num=${i%-file}
padnum=$(printf '%03d' $num)
mv -v "$i" "${padnum}-file"
done
이 라인을 따라 뭔가가 실행 가능해야합니다. 정확한 스키마와 디렉터리를 얻으려면 필요에 따라 수정하세요.
답변2
rename
Perl 유틸리티( prename
보다 원시적인 Linux 유틸리티가 아니라 종종 이라고 함) 가 있는 경우 :
rename -v 's/^([0-9]-)/00$1/; s/^([0-9]{2}-)/0$1/' *-file
- 첫 번째 정규식은 단일 숫자를 두 개의 0으로 바꿉니다(2->002).
- 두 번째는 두 자리 숫자를 0으로 바꿉니다(33->033).
답변3
관심 있는 디렉토리에서 실행하면 다음이 bash에서 작동합니다.
for x in [0-9]*-file ; do mv $x `printf %03d-%s ${x%-*} ${x##*-}` ; done