是否可以使用重命名
将文件大写但排除其扩展名?
即: 我想将文件 foo_bar.ext 重命名为 FOO_BAR.ext
我尝试使用rename 'y/a-z/A-Z/' foo_bar.ext
,但整个文件(包括扩展名)变为大写FOO_BAR.EXT
最佳答案
您要求rename
将[a-z]
的所有实例转换为[A-Z]
。相反,将所需的字符串捕获到一个组中并对其进行修改:
rename 's/([^.]*)/\U$1/' foo_bar.ext
这会将文件 foo_bar.ext
重命名为 FOO_BAR.ext
。
如果您有一个文件 foo_bar.baz.ext
需要重命名为 FOO_BAR.BAZ.ext
,请使用贪婪匹配和多个组。说:
rename 's/(.*)(\..*)/\U$1\E$2/' foo_bar.baz.ext
会将文件 foo_bar.baz.ext
重命名为 FOO_BAR.BAZ.ext
。
关于linux - 如何将文件名大写但排除扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626311/