gpt4 book ai didi

linux - 删除文件名中最后一个字符的正则表达式不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:21 27 4
gpt4 key购买 nike

我最近使用 youtube-dl 下载了一堆视频,但是程序在文件名末尾附加了字符:例如,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_]


或者不用重命名使用:

find . -name "*.mp3" -exec bash -c 'mv "$1" "$(sed "s/-[^.]*\(\.mp3\)$/\1/" <<< $1)"' - {} +

关于linux - 删除文件名中最后一个字符的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com