3028개 파일의 이름을 한 번에 바꿔야 합니다. 어떻게 도와드릴까요?
0001____z1.0.tif --> 0001.tif
0002____z2.0.tif --> 0002.tif
.
.
.
3028____z3028.0.tif --> 3028.tif
____z2.0.tif
Linux "이름 바꾸기" 옵션을 사용하여 "" 모든 파일의 이름을 한 번에 바꿀 수 있습니까 ? 아니면 다른 방법으로....? 아이디어가 있으시면 알려주시기 바랍니다. 정말 감사하겠습니다...
답변1
Perl을 사용 rename
하거나 다음을 수행하십시오 prename
.
rename 's/_.*/.tif/' *.tif
답변2
이미 답변이 있지만 이 작업은 셸만 사용하여 수행할 수 있다고 생각합니다.
불다:
중괄호 사이의 표현식은 다음과 같습니다.버팀대 확장.
for fn in {1..3028}; do
mv "$(printf "%04d\n" "${i}")____z${i}.0.tif" "${i}.tif"
done
POSIX:
i=0
while [ "${i}" -le 3028 ]; do
mv "$(printf "%04d\n" "${i}")____z${i}.0.tif" "${i}.tif"
i=$((i + i))
done
파일이 있는 디렉토리로 변경하거나 해당 경로 이름을 명령 인수에 추가해야 할 수도 있습니다 mv
. 예를 들어 파일이 다음 위치에 있는 경우 /tmp
:
mv "/tmp/$(printf "%04d\n" "${i}")____z${i}.0.tif" "/tmp/${i}.tif"