Mac OS X에서 많은 파일 이름 바꾸기, 일괄 처리


57

이름 바꾸기 명령을 통해 Linux에서 파일 이름을 바꾸는 데 사용했습니다.

rename 's/old_pattern/new_pattern/g' *glob

Mac OS X (Snow Leopard)에 비슷한 것이 있습니까?


다음 기사는 renameMac OS X에 설치하는 방법을 설명합니다 : macosxhints.com/article.php?story=20050630022203488
Paul R

의견에 백틱이 표시되지 않습니다. 답을 추가하거나 솔루션을 포함하도록 질문을 편집해야합니다.
Paul R

1
내가 찾은 최고의 빠른 솔루션은 내장 Automator를 사용하는 것입니다. 단계별 도움말을 통해 단계별 도움말을 확인하십시오. tuaw.com/2008/11/11/…
nilay

코멘트가 아닌 경우 nilay의 답변에 투표 할 것입니다 ...
voidstate

답변:


49

Homebrew를 사용하면 OS X 용 패키지 관리자 :

brew install rename 

그런 다음 renameLinux에서 와 동일한 명령을 실행할 수 있습니다 .


3
MacPorts 패키지도 사용할 수 있습니다 : port install p5-file-rename
Miquel Adrover

2
@MiquelAdrover :하지만 포트를 사용하는 rename-5.22대신rename
mems

심볼릭 링크의 이름을 바꿀 수 있습니다sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Ako

26

ZSH의 힘을 현명하게 zsh사용하십시오 (기본적으로 사용하지 않는 가난한 영혼 중 하나라면 터미널에 입력 하십시오).

autoload zmv
zmv '(*).htm' '$1.html'

ZMV는 MMV 구문을 따릅니다 .


그러나 그것은 정규식 교체를 허용합니까? 이것은 일종의 향상된 쉘 글 로빙 인 것 같습니다.
math

4
@brubelsabs : 예, zmv는 정규 표현식 대체를 수행 할 수 있습니다 . 일치하는 파일의 *user*.html경우 확장자를 .html로 변경하고 모든 항목을 다음 rc으로 변경하십시오 final. zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe : 답변 의 zmv 예제 -w는 와일드 카드 주위에 괄호가 필요 하다고 생각합니다 .
Chris Johnsen

Mac에 brew와 같은 추가 항목을 설치할 필요가 없기 때문에이 제안을 정말로 좋아하지만 구문과 같은 쉬운 mmv를 사용할 수 있습니다.
Hay

+1 니스 내가 사용하는 정규 표현식과의 몇 가지 차이점 : 1) 모든 것을 얻는 *대신 사용 .*하십시오. *?욕심쟁이처럼 작동하는 것 같습니다 .*?. 2) 나를 위해, ^그리고 $문자열의 시작과 끝이 아무것도 일치하지 않는 것처럼 보였습니다
user56reinstatemonica8

21

서투른 나 :

for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done 

그리고 당신이 이것을 자주 사용하는 것처럼 그것을 사용하고 싶다면 :

rename 's/old/new/' *.files

~ / bin / rename에서이 litte 스크립트를 사용하는 것이 좋습니다.

#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done

귀하의 스크립트가 나를 위해 작동하지 않습니다 "ACDC AC-DC ACDC 이름 바꾸기 *"결과-> "ssed : ACDC를 읽을 수 없음 : 해당 파일 또는 디렉토리가 없습니다", 리눅스에서 util 이름 바꾸기를 설치했으며 이제는 작동합니다.
holms

5

MacPorts 를 설치하고 renameutils패키지 를 설치할 수 있습니다 .

renameutils @ 0.10.0 (sysutils)

renameutils는 파일 이름을 더 빠르고 덜 번거롭게 만들도록 설계된 일련의 프로그램입니다.


이 패키지에는 "이름 바꾸기"명령이 없습니다.
juanpablo

1
나는 그렇게 말하지 않았다. qmv그것이 일을하는 것처럼 보입니다.
lajuette 2016 년

qmv훌륭한 도구는 간단한 정규식에 대해 조금 너무 많은 일이 이름을 변경하는 동안, 그것은 지능적으로 명명하고 임의의 파일의 큰 숫자를 이동 환상적입니다
sapht

4

다양한 버전의 rename이 있습니다. Perl 기반의 것을 찾고있는 것 같습니다.

이 유틸리티의 한 버전은 File :: Rename Perl 모듈 과 함께 제공됩니다 . 다음과 같은 방법으로 설치할 수 있습니다 sudo cpan -i File::Rename.

또는 데비안의 perl package 에서 이름바꿀 수도 있습니다. 다운로드 할 단일 파일입니다. 원하는 곳에 배치하고 실행 가능하도록 chmod 하십시오.


대안은 zsh 와 함께 제공 되는 zmv 도구입니다 . 동일한 구문은 없지만 OS와 함께 제공되며 많은 일반적인 경우를 쉽게 처리 할 수 ​​있습니다.


펄 이름 바꾸기는 이 질문 예로 보여줍니다 것입니다.
quack quixote

2

Mac rename에서는 Debian의 Perl 기반과 같은 Aristotle Pagaltzis의 무료 사용을 사용 합니다. 여기서 구할 수 있습니다 . 또는 여기 를 방문 하여 먼저 읽으십시오. 항상 좋은 생각입니다.

당신은 어딘가에 $PATH그것을 배치 하고 실행 가능하게 만들어야합니다 ( chmod +x rename).


2

이것은 어렵지 않지만 분명히 그렇습니다. 예를 들어, 모든 파일 확장자를 aiff에서 aifc로 바꾸고 싶습니다.

find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;

1

GUI를 찾고 있다면 Name Mangler를 사용해보십시오 . 이름 변경을 수행하면 어떻게되는지 보여주는 "미리보기"기능이 있습니다.



0

Sublime Text의 다중 선택을 좋아한다면 qmv와 함께 사용할 수 있습니다.

qmv --editor = "/ usr / bin / s3 -w"파일


0

방금 가서 내가 좋아하는 것을 펄 이름 바꾸기로 참조하여 rename도움이 다음과 같은 명령을 내리는 것을 발견했습니다.

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

그것이 내가 좋아하는 것을 얻었음을 알 수있는 방법입니다.

Mac의 경우 Homebrew에서도 문제가 발생한 것을 막연하게 기억하는 곳이 있습니다. 따라서 rename패키지가 아니며 nongnu renameutils패키지도 아닙니다 .

여기에서 가져 와서 언급 한대로 설치를했습니다 : https://github.com/subogero/rename

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.