首页 > 解决方案 > 使用循环重命名文件

问题描述

我有很多具有相同格式(???_ideal.sdf)名称的文件,我需要重命名所有文件(???.sdf),从名称“ideal”中删除。例如:

Files: 
002_ideal.sdf 
ERT_ideal.sdf 
234_ideal.sdf 
sCX_idel.sdf

New Files:
002.sdf 
ERT.sdf 
234.sdf 
SCX.sdf

我想使用一个循环,但我不知道如何表明在新文件名中应该删除“个人”。

例如:

for file in ???_individual.sdf; mv $file什么?

标签: linuxbashcentos

解决方案


使用您显示的示例,您能否尝试以下操作。这只会在终端上打印重命名命令(为了更安全,在实际重命名文件之前先检查并确保命令是否正常并且看起来没问题),以echo从后续执行实际重命名删除。

for file in *_ideal.sdf
do
   echo mv "$file" "${file/_ideal/}"
done 

推荐阅读