我的文件格式如下:
word1 word2 word3-6b3kZ3q2i.mp4
word-8x2u3p6b4.mkv
其中一些人有多个破折号。它们都有一个名称,后跟最后一个破折号和一个字母数字ID。
我要做的是从当前目录中的每个文件名中删除最后的短划线及其后的所有文本(文件扩展名除外)。
例如:word1 word2 word3-6b3kZ3q2i.mp4
到word1 word2 word3.mp4
我尝试的类似问题的所有解决方案似乎都不起作用。每当我在字符串中放置破折号以查找或替换时,rename
就会起作用。
有什么想法吗?
答案 0 :(得分:4)
假设您有基于Perl的rename
命令,则可以使用此rename
命令:
rename -n 's/-[^.-]+(?=\.)//' *.*
正则表达式分手:
- # match a hyphen
[^.-]+ # match 1 or more of any char that is not hyphen or dot
(?=\.) # lookahead to assert that next char is dot