linux - 不同文件类型的部分文件重命名

标签 linux bash rename mv data-management

抱歉,如果这与通常的问题相比非常简单,但我才刚刚开始。我有一些文件都具有相同的起始名称但文件类型不同,例如:

1234.x
1234.y
1234.z
1234_V2.x
1234_V2.y
1234_V2.z

我想重命名这些的第一部分,同时保留任何结尾和文件类型,例如:

4321.x
4321.y
4321.z
4321_V2.x etc

我试过用

mv 1234* 4321* 

rename 1234* 4321*

但是没有运气!我也浏览了所有其他 SO 文章,虽然我可以使用循环,但大多数取决于文件类型是否相同。

提前致谢

最佳答案

您可以使用 bash 替换:

for file in 1234* 
do mv "$file" "4321${file#1234}"
done

或者,将 do mv 替换为以下内容

do mv "$file" "${file/1234/4321}"

man bash EXPANSION 部分,子部分 Parameter Expansion 中查看更多信息

关于linux - 不同文件类型的部分文件重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20283115/

相关文章:

python - 使用 sys.stdin.readline() 通过 "| bash "运行 python 脚本

r - 在 R 中,如何向列名添加一串文本?

linux - 查看Linux下存储的windows文件名

Python匿名管道设置超时

windows - 从Windows系统在docker build上启动基本bash脚本

c - 在脚本中使用 sleep 会消耗 cpu 周期吗?

javascript - 使用 Visual Studio IDE 在 SharePoint 中进行 JavaScript 开发 - 文件自动重命名为 MyFile.js~RFxxxxx.TMP

c# - 模仿 Windows 默认文件重命名行为的 .Net 方法

linux - 如何在 Linux 应用程序中保留命令行空间?

linux - Shell sh ,语法 while(condition)