리눅스에서 파일 이름 바꾸기

리눅스에서 파일 이름 바꾸기

3028개 파일의 이름을 한 번에 바꿔야 합니다. 어떻게 도와드릴까요?

0001____z1.0.tif    -->  0001.tif
0002____z2.0.tif    -->  0002.tif
   .
   .
   .

3028____z3028.0.tif --> 3028.tif

____z2.0.tifLinux "이름 바꾸기" 옵션을 사용하여 "" 모든 파일의 이름을 한 번에 바꿀 수 있습니까 ? 아니면 다른 방법으로....? 아이디어가 있으시면 알려주시기 바랍니다. 정말 감사하겠습니다...

답변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"

관련 정보