首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除文件名中第一个句点之前的任何字符和所有字符?

如何删除文件名中第一个句点之前的任何字符和所有字符?
EN

Unix & Linux用户
提问于 2020-07-25 04:40:30
回答 1查看 903关注 0票数 0

我有1366个文件,其文件名以四个数字开头。例如:

代码语言:javascript
复制
128.unique filename.flac
6.unique filename.flac
1288.unique filename.flac

我想删除所有的数字和句号,这样,所有的文件都会以这样的方式存在:

代码语言:javascript
复制
unique filename.flac
unique filename.flac
unique filename.flac

我在运行Ubuntu 16.04。我怎样才能做到这一点?

EN

回答 1

Unix & Linux用户

发布于 2020-07-25 05:13:52

使用shell的

让我们从以下文件开始: $ ls 'unique filename 1.flac' 'unique filename 2.flac' 'unique filename 让我们运行以下命令: $ for f in [0-9]*flac; do mv "$f" "${f#*.}"; done 执行上述文件后,文件如下: $ ls 'unique filename 1.flac' 'unique filename 2.flac' 'unique filename 3.flac' for f in [0-9]*flac; do在每个文件名上启动一个for循环,该循环以数字开头,以flac结尾。mv "$f" "${f#*.}"删除文件名的开头,直到并包括第一个句点。done发出for循环结束的信号。

Perl的rename命令

有两个不兼容的实用程序名为rename。此方法适用于Perl附带的rename命令(有时称为prename)。

如果安装了其他rename,则此方法将无法工作。

让我们再次从这些文件开始,然后运行prename命令:

代码语言:javascript
复制
$ ls
'1288.unique filename 3.flac'  '128.unique filename 1.flac'  '6.unique filename 2.flac'
$ prename 's/^\d+\.//' [0-9]*flac
$ ls
'unique filename 1.flac'  'unique filename 2.flac'  'unique filename 3.flac'

Perl的重命名使用正则表达式。\d+\.匹配一个或多个数字,后面跟着句点。^要求这些数字出现在文件名的开头。s/^\d+\.//会导致这些数字和句点被替换为空。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/600246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档