使用循环重命名文件

时间:2021-01-18 11:03:46

标签: linux bash centos

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

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 什么?

2 个答案:

答案 0 :(得分:3)

根据您展示的样品,您可以尝试以下操作吗?这只会在终端上打印重命名命令(为了安全起见,在实际重命名文件之前先检查并确保命令是否正常并且看起来没问题),以执行实际重命名从以下内容中删除 echo

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

答案 1 :(得分:0)

基于 this answer,您还可以将其写成一行:

rename 's/^(.*)_ideal.png/$1.png/s' **/**

第一个参数替换_ideal.png,第二个表示所有文件。

相关问题