如何使用终端将具有序列名称的文件重命名为另一个序列?

亚历克斯·库什利(Alex Cushley)

我有一个目录,其中包含名为“ o1.ray”至“ o293.ray”的文件。我想将它们从“ o132.ray”重命名为“ o424.ray”时将它们移动到另一个目录。

我如何在终端上做到这一点?

cd directory
for i in {1...293};
do cp o$i.ray subdirectory/o$i+131.ray;
done

我知道这是错误的,因为我得到:

error message 'cp: cannot stat 'o{1...293}.ray': No such file or directory 
杰夫·谢勒(Jeff Schaller)

正如Kusalananda所暗示的那样,这主要是对语法的调整:

for index in {1..293}; do echo mv o"${index}".ray subdirectory/o"$((index+131))".ray; done

echo当输出看起来正确时,将其删除

或者,使用zsh的zmv模块

autoload zmv
zmv -n 'o(<->).ray' 'subdirectory/o$[$1 + 131].ray'

$[ ... ]语法执行算术运算;$1捕获与周围的括号<->后面的o<->是一个zsh通配符,它​​捕获数字范围;没有任何端点,它是开放式的;对于您的情况,您可能会非常具体:

zmv -n 'o(<1-293>).ray' 'subdirectory/o$[$1 + 131].ray'

-n当输出看起来正确时,将其删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Linux / Unix中将多个文件从一个扩展名重命名为另一个扩展名?

如何将一个文件重命名为另一个文件系统?

PHPExcel将默认工作表名称重命名为另一个名称

使用pathlib将一个目录破坏性地重命名为另一个现有目录

使用Java将文件名列表重命名为另一个列表的文件名

如何在终端上将所有目录中的文件重命名为相同的名称

是否可以使用Powershell或批处理文件将文件夹中的每个文件重命名为另一个名称?

将std :: vector重命名为另一个类以进行重载?

如何将文件重命名为带后缀的单调递增序列号?

如何将我的上传文件重命名为数据库中的url,然后在另一个页面中调整上传大小

如何在vb.net中一个接一个地移动文件并将其从目录重命名为另一个

从终端递归将所有文件和文件夹重命名为Title Case

将网络文件夹中具有不同名称的FTP文件夹上的图片重命名为1个文件(替代)

遍历子目录,并(1)将文件复制到另一个目录(2)将其重命名为其md5哈希

将XML元素重命名为序列

在终端中将文件重命名为父目录的名称

在外壳程序脚本中将带有日期的文件重命名为另一个日期

终端:将多个文件重命名为数字顺序

如何将多个文件重命名为一个名称

如何将具有已知名称的文件重命名为存储在变量中的新名称?

如何将具有不同名称的多个文件重命名为file1,file2,file3等?

将图像批量重命名为文件夹名称+序列号

将多个文件夹中的重复文件名重命名为另一个名称

如何将文件从一种递增模式重命名为另一种?

如何使用 exiftool 将文件重命名为 CSV 导入文件中包含的新名称

将文件夹中的文件重命名为一个名称

Pandas 将一个值重命名为列中的另一个值,并在另一列中添加相应的值

使用单元格值在文件夹中查找文件,然后重命名为另一个单元格值

将 2 个具有不同扩展名的相似文件重命名为第一个文件,但保留扩展名