如何通过交换目录名中的数字和单词来重命名目录。
e.g。
FRA-DEV_007583-K4C-RDF-1
FRA-DEV_007583-K4C源-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
答案 0 :(得分:0)
如果您将所有这些文件放在同一目录中,而其中没有其他文件,则可以使用此脚本:
#! /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
将此脚本保存为rename.sh
,位于文件所在目录的OUTSIDE目录中。然后执行:bash rename.sh path/to/your/files/
不要忘记最后的斜杠,并先进行备份以防万一。