Directory 在Unix中使用特定模式命名目录

Directory 在Unix中使用特定模式命名目录,directory,rename,Directory,Rename,如何通过交换目录名中的数字和单词来重命名目录 e、 g。 FRA-DEV_007583-K4C-rdf-1 FRA-DEV_007583-K4C-source-8 FRA-DEV_007584-K4C-rdf-19 FRA-DEV_007584-K4C-rdf-8 输出应该是 FRA-DEV_007583-K4C-1-rdf FRA-DEV_007583-K4C-8-来源 FRA-DEV_007584-K4C-9-rdf FRA-DEV_007584-K4C-8-rdf如果所有这些文件都在同一个

如何通过交换目录名中的数字和单词来重命名目录

e、 g。 FRA-DEV_007583-K4C-rdf-1
FRA-DEV_007583-K4C-source-8 FRA-DEV_007584-K4C-rdf-19 FRA-DEV_007584-K4C-rdf-8

输出应该是

FRA-DEV_007583-K4C-1-rdf
FRA-DEV_007583-K4C-8-来源 FRA-DEV_007584-K4C-9-rdf
FRA-DEV_007584-K4C-8-rdf

如果所有这些文件都在同一个目录中,而没有其他文件,则可以使用以下脚本:

#! /bin/bash

nums=(`ls $1 | cut -d- -f5`)
words=(`ls $1 | cut -d- -f4`)
files=(`ls $1 | cut -d- -f1-3`)
complete_files=(`ls $1`)

len=${#complete_files[@]}

for (( i=0; i<${len}; i++ ));
do
  newname=${files[$i]}-${nums[$i]}-${words[$i]}   
  mv $1${complete_files[$i]} $1$newname
done
#/bin/bash
nums=(`ls$1|cut-d--f5`)
words=(`ls$1 | cut-d--f4`)
files=(`ls$1 | cut-d--f1-3`)
完整的_文件=(`ls$1`)
len=${#完整的_文件[@]}

对于((i=0;我很高兴它有帮助。如果一个答案解决了您的问题,请将其标记为已接受(绿色勾号)。这会给您和回答者带来声誉奖励。不确定您在谈论哪个绿色勾号?它是否位于页面顶部。我可以看到一个绿色和一个红色按钮。