gpt4 book ai didi

bash - 重命名多个目录,同时保留一个具有不同后缀的中间部分

转载 作者:行者123 更新时间:2023-12-04 08:27:14 24 4
gpt4 key购买 nike

我正在尝试使用 bash 更改多个目录的名称,名称的结构如下所示:

DRMAD_CA-12__MRBK01_237a8430 DRMAD_CA-17__MRBK10_766c3396
DRMAD_CA-103__MRBK100_c27a6c1c


目标是保留 MRBK 以及紧随其后的数字( MRBK### ),但要去掉其余部分。前缀的模式总是相同的 ( DRMAD_CA-###__ ),而后缀是 ' _ ' 后跟正好 8 个字母和数字的组合。试过 sed ,但似乎无法找出正确的模式。
看到 Stackoverflow 上的其他帖子,我已经厌倦了
ls | while read file; do new=$( echo $file | sed 's/[^0-9]*\([^ ]*\)[^.]*\(\..*\)*MRBK\1\2/' ) mv "$file" "$new" done
但是由于我不太了解 sed 的语法,因此它不会产生可用的结果。

最佳答案

使用 rename公用事业。
首先,打印旧名称和新名称,但不要重命名任何内容:

rename --dry-run 's/.*(MRBK\d+).*/$1/' *MRBK*
如果OK,实际重命名:
rename 's/.*(MRBK\d+).*/$1/' *MRBK*
安装 rename ,例如,使用 conda .

关于bash - 重命名多个目录,同时保留一个具有不同后缀的中间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65200376/

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