我最近使用来下载了一堆视频youtube-dl
,但该程序在文件名的末尾附加了字符:例如,Video test
变成了Video test-jSbQ40_9B.mp3
。格式始终相同:破折号和大约10个字母数字字符或下划线。为什么以下命令什么都不做?
rename 's/[A-Za-z0-9]*\.mp3/\.mp3/' *
(我也尝试过以root身份运行它)
谢谢!
这应该工作:
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)"' - {} +
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句