임의의 문자 접미사를 제거하기 위해 파일 이름 바꾸기 기능을 스크립팅하는 방법

임의의 문자 접미사를 제거하기 위해 파일 이름 바꾸기 기능을 스크립팅하는 방법

임의의 문자가 추가된 파일 이름이 많이 있습니다. 동일한 디렉토리에 추가된 문자를 뺀 원래 파일 이름으로 일괄 이름을 바꾸고 싶습니다.

예:

에서: foobar.txt_fdnf Bubble.txt_terj apple.txt_fspd

도착하다: foobar.txt Bubble.txt apple.txt

답변1

rename정규식과 함께 명령을 사용하여 일괄 이름을 바꿀 수 있습니다 .

Debian 기반 배포판에서는 이 패키지를 "이름 바꾸기"라고 하며, Arch 기반 배포판에서는 perl-rename.

(이 정규식에서는 모든 파일이 .txt_randomtext 패턴을 따른다고 가정합니다.)

rename -n 's/\.txt_.+/.txt/' *.txt*

-n옵션을 사용하면 변경 사항을 적용하기 전에 검토할 수 있습니다. 파일 이름이 이렇게 바뀌었다고 판단되면 -n옵션을 제거하고 명령을 다시 실행하십시오.

답변2

존재하다 zsh:

autoload -Uz zmv
zmv -n '(*.txt)_[[:lower:]](#c4)' '$1'

( -n만족하면 테스트 실행을 위해 삭제)

.txt이름이 4개의 소문자로 끝나는 파일( 발음 부호 없이 영문 26자로 제한됨) [[:lower:]]은 이름이 변경됩니다 .[a-z]

zmv이름 바꾸기를 시작하기 전에 중복 여부를 확인합니다.

관련 정보