批量改名
源文件名
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]#
1、把源文件改为不包含_finished字符的文件
方法1、利用 ${string%substring}从变量$string的结尾,删除最短匹配$substring的子串
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo ${n%_finished.jpg}.jpg` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10.jpg lvnian_201508_2.jpg lvnian_201508_4.jpg lvnian_201508_6.jpg lvnian_201508_8.jpg
lvnian_201508_1.jpg lvnian_201508_3.jpg lvnian_201508_5.jpg lvnian_201508_7.jpg lvnian_201508_9.jpg
[root@centos1 xiaoming]#
方法2、利用awk
[root@centos1 xiaoming]# rm -rf *
[root@centos1 xiaoming]#
[root@centos1 xiaoming]#
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|awk -F'_finished' '{print $1 $2}'` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10.jpg lvnian_201508_2.jpg lvnian_201508_4.jpg lvnian_201508_6.jpg lvnian_201508_8.jpg
lvnian_201508_1.jpg lvnian_201508_3.jpg lvnian_201508_5.jpg lvnian_201508_7.jpg lvnian_201508_9.jpg
[root@centos1 xiaoming]#
方法3、利用sed
[root@centos1 xiaoming]# rm -rf *
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|sed -n 's/_finished//'gp` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10.jpg lvnian_201508_2.jpg lvnian_201508_4.jpg lvnian_201508_6.jpg lvnian_201508_8.jpg
lvnian_201508_1.jpg lvnian_201508_3.jpg lvnian_201508_5.jpg lvnian_201508_7.jpg lvnian_201508_9.jpg
[root@centos1 xiaoming]#
方法4、rename
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# rename _finished "" *
[root@centos1 xiaoming]# ls
lvnian_201508_10.jpg lvnian_201508_2.jpg lvnian_201508_4.jpg lvnian_201508_6.jpg lvnian_201508_8.jpg
lvnian_201508_1.jpg lvnian_201508_3.jpg lvnian_201508_5.jpg lvnian_201508_7.jpg lvnian_201508_9.jpg
[root@centos1 xiaoming]#
##################################################################################
2、把源文件改为不包含lvnian_字符的文件
方法1、利用${string#substring} 从变量$string的开头,删除最短匹配$substring的子串
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo ${n#lvnian_}` ;done
[root@centos1 xiaoming]# ls
201508_10_finished.jpg 201508_2_finished.jpg 201508_4_finished.jpg 201508_6_finished.jpg 201508_8_finished.jpg
201508_1_finished.jpg 201508_3_finished.jpg 201508_5_finished.jpg 201508_7_finished.jpg 201508_9_finished.jpg
[root@centos1 xiaoming]#
########################
方法2.sed
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|sed -n 's/lvnian_//gp'` ;done
[root@centos1 xiaoming]# ls
201508_10_finished.jpg 201508_2_finished.jpg 201508_4_finished.jpg 201508_6_finished.jpg 201508_8_finished.jpg
201508_1_finished.jpg 201508_3_finished.jpg 201508_5_finished.jpg 201508_7_finished.jpg 201508_9_finished.jpg
[root@centos1 xiaoming]#
方法3.awk
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|awk -F'lvnian_' '{print $2}' ` ;done
[root@centos1 xiaoming]# ls
201508_10_finished.jpg 201508_2_finished.jpg 201508_4_finished.jpg 201508_6_finished.jpg 201508_8_finished.jpg
201508_1_finished.jpg 201508_3_finished.jpg 201508_5_finished.jpg 201508_7_finished.jpg 201508_9_finished.jpg
[root@centos1 xiaoming]#
方法4、rename
[root@centos1 xiaoming]# rename "lvnian_" "" *
[root@centos1 xiaoming]# ls
201508_10_finished.jpg 201508_2_finished.jpg 201508_4_finished.jpg 201508_6_finished.jpg 201508_8_finished.jpg
201508_1_finished.jpg 201508_3_finished.jpg 201508_5_finished.jpg 201508_7_finished.jpg 201508_9_finished.jpg
[root@centos1 xiaoming]#
##################################################################################
2、把源文件中的finished改为包含xiaogao字符的文件
方法1、利用${string/substring/replacement}使用$replacement,来代替第一个匹配的$substring
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo ${n/finished/xiaogao} ` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_xiaogao.jpg lvnian_201508_3_xiaogao.jpg lvnian_201508_6_xiaogao.jpg lvnian_201508_9_xiaogao.jpg
lvnian_201508_1_xiaogao.jpg lvnian_201508_4_xiaogao.jpg lvnian_201508_7_xiaogao.jpg
lvnian_201508_2_xiaogao.jpg lvnian_201508_5_xiaogao.jpg lvnian_201508_8_xiaogao.jpg
[root@centos1 xiaoming]#
方法2 sed
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|sed -n 's/finished/xiaogao/gp'` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_xiaogao.jpg lvnian_201508_3_xiaogao.jpg lvnian_201508_6_xiaogao.jpg lvnian_201508_9_xiaogao.jpg
lvnian_201508_1_xiaogao.jpg lvnian_201508_4_xiaogao.jpg lvnian_201508_7_xiaogao.jpg
lvnian_201508_2_xiaogao.jpg lvnian_201508_5_xiaogao.jpg lvnian_201508_8_xiaogao.jpg
[root@centos1 xiaoming]#
方法3、awk
[root@centos1 xiaoming]# rm -rf *
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# for n in `ls `;do mv $n `echo $n|awk -F'finished' '{print $1 "xiaogao" $2}' ` ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_xiaogao.jpg lvnian_201508_3_xiaogao.jpg lvnian_201508_6_xiaogao.jpg lvnian_201508_9_xiaogao.jpg
lvnian_201508_1_xiaogao.jpg lvnian_201508_4_xiaogao.jpg lvnian_201508_7_xiaogao.jpg
lvnian_201508_2_xiaogao.jpg lvnian_201508_5_xiaogao.jpg lvnian_201508_8_xiaogao.jpg
[root@centos1 xiaoming]#
方法4、rename
[root@centos1 xiaoming]# for n in `seq 10`;do touch lvnian_`date +%Y%m$d`_${n}_finished.jpg ;done
[root@centos1 xiaoming]# ls
lvnian_201508_10_finished.jpg lvnian_201508_3_finished.jpg lvnian_201508_6_finished.jpg lvnian_201508_9_finished.jpg
lvnian_201508_1_finished.jpg lvnian_201508_4_finished.jpg lvnian_201508_7_finished.jpg
lvnian_201508_2_finished.jpg lvnian_201508_5_finished.jpg lvnian_201508_8_finished.jpg
[root@centos1 xiaoming]# rename finished xiaogao *
[root@centos1 xiaoming]# ls
lvnian_201508_10_xiaogao.jpg lvnian_201508_3_xiaogao.jpg lvnian_201508_6_xiaogao.jpg lvnian_201508_9_xiaogao.jpg
lvnian_201508_1_xiaogao.jpg lvnian_201508_4_xiaogao.jpg lvnian_201508_7_xiaogao.jpg
lvnian_201508_2_xiaogao.jpg lvnian_201508_5_xiaogao.jpg lvnian_201508_8_xiaogao.jpg
[root@centos1 xiaoming]#