gpt4 book ai didi

linux - 用于重命名和重新排列文件的脚本 shell

转载 作者:IT王子 更新时间:2023-10-29 00:34:07 25 4
gpt4 key购买 nike

我想重新排列和重命名文件。我有这个文件树结构:

ada/rda/0.05/alpha1_freeSurface.md
ada/rda/0.05/p_freeSurface.md
ada/rda/0.05/U_freeSurface.md
ada/rda/0.1/alpha1_freeSurface.md
ada/rda/0.1/p_freeSurface.md
ada/rda/0.1/U_freeSurface.md

我希望文件将像下面的结构一样重命名和重新排列:

ada/rda/ada-0.05-alpha1.md
ada/rda/ada-0.05-p.md
ada/rda/ada-0.05-U.md
ada/rda/ada-0.1-alpha1.md
ada/rda/ada-0.1-p.md
ada/rda/ada-0.1-U.md

最佳答案

使用 perl rename(有时称为 prename)工具:

rename  's|ada/rda/([^/]*)/([^_]*).*|ada/rda/ada-$1-$2.md|' ada/rda/*/*

(注意:默认情况下,一些发行版从 util-linux 包中安装了一个 rename 命令。这个命令是不兼容的。如果你有这样的发行版,请查看名称 prename 下是否有 perl 版本。)

工作原理

rename 将 perl 命令作为参数。这里的参数由单个替代命令组成。文件的新名称是通过将替换命令应用于旧名称而找到的。这使我们不仅可以给文件一个新名称,还可以给一个新目录,如上所示。

更详细地说,替换命令看起来像s|old|new|。在我们的例子中,oldada/rda/([^/]*)/([^_]*).*。这会捕获第 1 组中的数字和第 2 组中文件名的开头(第一个 _ 之前的部分)。new 部分是 ada/rda/ada-$1-$2.md.这将使用两个捕获的组创建新文件名。

关于linux - 用于重命名和重新排列文件的脚本 shell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com