rename 명령을 사용하여 이러한 파일 이름을 수정하려면 어떻게 해야 합니까?

rename 명령을 사용하여 이러한 파일 이름을 수정하려면 어떻게 해야 합니까?

다음과 같은 파일을 변경하려고 합니다.

01 Track name.mp3

~ 안으로

01 - Track name.mp3

지금까지 나의 헛된 시도는

rename '0. ' '$&- ' *.mp3
rename 's/0. /$&- /' *.mp3
rename '/0. /' '/$&- /' *.mp3
rename 's/0.\ /$&-\ /' *.mp3
rename 's/0.\ /$1-\ /' *.mp3

답변1

perl rename명령을 가정하면:

마지막 명령에 거의 근접했습니다. rename 's/(0.) /$1 - /' *.mp3작동 할 것이다. 공백을 벗어날 필요가 없으며 정규 표현식에서는 특별한 의미가 없으며(파일 이름에서는 중요하지만 여기서는 중요하지 않음) 재사용하려는 부분 주위에 괄호가 필요합니다.

답변2

명령 을 사용해야합니까 rename?

$ ls
01 Track name.mp3  02 Track name.mp3  03 Track name.mp3

$ for a in *.mp3
> do
> mv -i "$a" "${a%% *} - ${a#* }"
> done

$ ls
01 - Track name.mp3  02 - Track name.mp3  03 - Track name.mp3

답변3

$ rename 's/^(\d\d)\s*/$1 - /' *.mp3

이렇게 하면 파일 이름 시작 부분에 두 자리 숫자가 있는 모든 MP3 파일의 이름이 바뀌고 숫자 뒤에 공백-대시-공백이 삽입됩니다. 그래서 01 Track name.mp3될 것이다01 - Track name.mp3

자신의 시도로 판단하면 모든 파일 이름은 숫자 0으로 시작하고 대시를 삽입하려는 것으로 보입니다.곧장숫자 뒤에 공백이옵니다.

$ rename 's/^(0\d)\s*/$1- /' *.mp3

이는 01 Track name.mp3로 변환됩니다 01- Track name.mp3.

답변4

두(세) 개의 지우기 명령이 있습니다. 하나는유틸리티 리눅스모든 비임베디드 Linux 시스템에 설치되는 패키지와 Perl을 기반으로 하는 하나(실제로는 두 가지 변형) 패키지가 있습니다. 보다이름 바꾸기, 이름 바꾸기, 파일 이름 바꾸기 등 모든 이름 바꾸기는 무엇입니까?

util-linux 명령은 매우 기본적이지만 원하는 작업을 수행할 수 있는 드문 상황에 있습니다. 첫 번째 공백을 space-dash-space로 바꿉니다.

rename ' ' ' - ' [0-9][0-9]\ [^-]*

관련 정보