다음과 같은 파일을 변경하려고 합니다.
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]\ [^-]*