一次重命名多个文件

问题描述 投票:-1回答:1

我有一个大型数据集,这些文件都是这样命名的:

proportional.rank_9.cycle_10157.ratio_9
proportional.rank_9.cycle_10158.ratio_0
proportional.rank_9.cycle_10159.ratio_130
proportional.rank_9.cycle_10160.ratio_7

但当然事后看来,这将使文件中的阅读变得困难,因为我需要文件名,每个文件名可能有不同的比例。有没有办法一次重命名所有文件,以便ratio_ *消失?

理想情况下,我希望他们采用这种形式:

proportional.rank_9.cycle_10157
proportional.rank_9.cycle_10158
proportional.rank_9.cycle_10159
proportional.rank_9.cycle_10160
terminal rename filenames file-rename
1个回答
0
投票
//set X to all files of the form proportional.rank
X=$(ls proportional.rank*) 

//print out to check X is set
echo $X 

//loop over all files of X
for i in $X ; do
  before_stem=${i%.ratio_*} //what I want to keep
  after_stem=${i#*.ratio_}  //what I don't want
  new_end =$(printf ".out" $after_stem) //give new ending
  mv $i ${before_stem}${new_end} //concatenate the new ending and old beginning
done

%:在%之后的模式之前取一切

英镑符号:在#之后的模式之后采取一切

printf:就像C printf一样

proportional.rank_9.cycle_10157.ratio_9
proportional.rank_9.cycle_10158.ratio_0
proportional.rank_9.cycle_10159.ratio_130
proportional.rank_9.cycle_10160.ratio_7

proportional.rank_9.cycle_10157.out
proportional.rank_9.cycle_10158.out
proportional.rank_9.cycle_10159.out
proportional.rank_9.cycle_10160.out
© www.soinside.com 2019 - 2024. All rights reserved.