我有1366个文件,其文件名以四个数字开头。例如:
128.unique filename.flac
6.unique filename.flac
1288.unique filename.flac我想删除所有的数字和句号,这样,所有的文件都会以这样的方式存在:
unique filename.flac
unique filename.flac
unique filename.flac我在运行Ubuntu 16.04。我怎样才能做到这一点?
发布于 2020-07-25 05:13:52
使用shell的
for f in [0-9]*flac; do在每个文件名上启动一个for循环,该循环以数字开头,以flac结尾。mv "$f" "${f#*.}"删除文件名的开头,直到并包括第一个句点。done发出for循环结束的信号。rename命令有两个不兼容的实用程序名为rename。此方法适用于Perl附带的rename命令(有时称为prename)。
如果安装了其他rename,则此方法将无法工作。
让我们再次从这些文件开始,然后运行prename命令:
$ 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+\.//会导致这些数字和句点被替换为空。
https://unix.stackexchange.com/questions/600246
复制相似问题