
다음과 같은 이름 목록이 있습니다.
/A/B/C/D/E/F/filename_album1-003.mp3
앨범에 더 가깝습니다\d+
나는 그것을 다음과 같이 바꾸고 싶다.
/A/B/C/D/E/F/filename_song-3.mp3
song
그냥 고정된 문자열입니다.
비슷한 것을 시도했지만 숫자가 누락되어 선행 001이 모두 제거되지 않았습니다 basename -s '.mp3'
. sed -e /_album//g
이를 수행할 수 있는 좋은 방법이 있습니까?
답변1
그리고 zsh
:
$ autoload zmv # best in ~/.zshrc
$ zmv -n '(**/)(*_)*-0#(<->.mp3)' '$1$2song-$3'
mv -- A/B/foo_bar-0002.mp3 A/B/foo_song-2.mp3
-n
만족스러우면 삭제하세요.
답변2
이 시도:
rename -n 's/_album1-0*/-song-/' /A/B/C/D/E/F/filename_album1-003.mp3
( -n
테스트가 정상이면 스위치를 제거하십시오)
이 작업을 수행할 수도 있고 수행하지 못할 수도 있는 같은 이름의 다른 도구가 있으므로 주의하세요.
다음 명령을 실행하면 ( GNU
)
$ file "$(readlink -f "$(type -p rename)")"
이런 결과가 나왔어요
.../rename: Perl script, ASCII text executable
다음은 포함되지 않습니다:
ELF
그렇다면 이것이 올바른 도구인 것 같습니다 =)
그렇지 않은 경우 이를 기본값으로 설정하고(일반적으로 이미 적용되어 있음) Debian
다음과 같이 파생시킵니다 Ubuntu
.
$ sudo update-alternatives --set rename /path/to/rename
(명령어의 경로로 바꿉니다 /path/to/rename
.perl's rename
이 명령이 없으면 패키지 관리자를 검색하여 설치하거나수동으로 수행
마지막으로 이 도구는 원래 Perl의 아버지인 Larry Wall이 작성했습니다.
답변3
새로운 "노래" 이름을 어디서 얻었는지 이해가 안 됩니다. 시작해서 ... filename_album1-003.mp3
로 전환하면 filename_song-3.mp3
...
ID3 태그에서 노래 이름을 얻으면 태그 정보에서 mp3 이름을 바꿀 수 있는 프로그램을 사용하는 것이 더 쉽습니다. easytag, mp3rename, lltag처럼... 데비안 저장소와 다른 저장소에 여러 개가 있습니다