我最近使用youtube-dl
下载了一堆视频,但程序在文件名的末尾附加了字符:例如,Video test
变为Video test-jSbQ40_9B.mp3
。格式始终相同:破折号,以及大约10个字母数字字符或下划线。为什么以下命令什么都不做?
rename 's/[A-Za-z0-9]*\.mp3/\.mp3/' *
(我也试过以root身份运行它)
谢谢!
答案 0 :(得分:0)
这应该有效:
rename 's/-\w+(\.mp3)$/$1/' *
或者其他:
rename 's/-\w+(?=\.mp3)$//' *
你的正则表达式与破折号后的文件名中存在的下划线不匹配。 \w
匹配[a-zA-Z0-9_]
或者没有使用rename
:
find . -name "*.mp3" -exec bash -c 'mv "$1" "$(sed "s/-[^.]*\(\.mp3\)$/\1/" <<< $1)"' - {} +