임의의 문자가 추가된 파일 이름이 많이 있습니다. 동일한 디렉토리에 추가된 문자를 뺀 원래 파일 이름으로 일괄 이름을 바꾸고 싶습니다.
예:
에서: 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
이름 바꾸기를 시작하기 전에 중복 여부를 확인합니다.