批量修改文件名
批量修改文件名:将_finished去掉:
stu_102999_1_finished.jpg
stu_102999_2_finished.jpg
stu_102999_3_finished.jpg
stu_102999_4_finished.jpg
stu_102999_5_finished.jpg
第一种方法:for循环
思路:首先在命令行处理一个文件,将处理好的结果写到for循环中。
1 [root@mysql oldboy]# file=stu_102999_1_finished.jpg 2 [root@mysql oldboy]# echo $file|sed 's#_finished##g' 3 stu_102999_1.jpg 4 [root@mysql oldboy]# mv $file `echo $file|sed 's#_finished##g'` 5 [root@mysql oldboy]# ll 6 总用量 0 7 -rw-r--r-- 1 root root 0 12月 21 23:38 stu_102999_1.jpg 8 [root@mysql oldboy]# vim for2.sh 9 #!/bin/bash 10 for file in `ls *.jpg` 11 do 12 mv $file `echo $file|sed 's#_finished##g'` 13 done 14 [root@mysql oldboy]# sh for2.sh 15 mv: "stu_102999_1.jpg" 与"stu_102999_1.jpg" 为同一文件 16 [root@mysql oldboy]# ll 17 总用量 4 18 -rw-r--r-- 1 root root 88 12月 21 23:41 for2.sh 19 -rw-r--r-- 1 root root 0 12月 21 23:38 stu_102999_1.jpg 20 -rw-r--r-- 1 root root 0 12月 21 23:35 stu_102999_2.jpg 21 -rw-r--r-- 1 root root 0 12月 21 23:35 stu_102999_3.jpg 22 -rw-r--r-- 1 root root 0 12月 21 23:35 stu_102999_4.jpg 23 -rw-r--r-- 1 root root 0 12月 21 23:35 stu_102999_5.jpg
第二种方法:使用awk处理
思路:将需要处理的内容拼接好,然后交给bash处理
1 [root@mysql ~]# ls *.jpg|awk -F "_finished" '{print $0 " " $1$2}' 2 stu_102999_1_finished.jpg stu_102999_1.jpg 3 stu_102999_2_finished.jpg stu_102999_2.jpg 4 stu_102999_3_finished.jpg stu_102999_3.jpg 5 stu_102999_4_finished.jpg stu_102999_4.jpg 6 stu_102999_5_finished.jpg stu_102999_5.jpg 7 [root@mysql ~]# ls *.jpg|awk -F "_finished" '{print "mv " $0 " " $1$2}' 8 mv stu_102999_1_finished.jpg stu_102999_1.jpg 9 mv stu_102999_2_finished.jpg stu_102999_2.jpg 10 mv stu_102999_3_finished.jpg stu_102999_3.jpg 11 mv stu_102999_4_finished.jpg stu_102999_4.jpg 12 mv stu_102999_5_finished.jpg stu_102999_5.jpg 13 [root@mysql ~]# ls *.jpg|awk -F "_finished" '{print "mv " $0 " " $1$2}'|bash 14 [root@mysql ~]# ls -l *.jpg 15 -rw-r--r-- 1 root root 0 12月 21 23:22 stu_102999_1.jpg 16 -rw-r--r-- 1 root root 0 12月 21 23:22 stu_102999_2.jpg 17 -rw-r--r-- 1 root root 0 12月 21 23:22 stu_102999_3.jpg 18 -rw-r--r-- 1 root root 0 12月 21 23:22 stu_102999_4.jpg 19 -rw-r--r-- 1 root root 0 12月 21 23:22 stu_102999_5.jpg
第三种方法:使用rename,更专业。
思路:rename在修改文件名时,最专业。rename from to file
1 [root@mysql oldboy]# ll 2 总用量 4 3 -rw-r--r-- 1 root root 88 12月 21 23:41 for2.sh 4 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_1_finished.jpg 5 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_2_finished.jpg 6 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_3_finished.jpg 7 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_4_finished.jpg 8 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_5_finished.jpg 9 [root@mysql oldboy]# rename "_finished" "" *.jpg 10 [root@mysql oldboy]# ll 11 总用量 4 12 -rw-r--r-- 1 root root 88 12月 21 23:41 for2.sh 13 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_1.jpg 14 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_2.jpg 15 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_3.jpg 16 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_4.jpg 17 -rw-r--r-- 1 root root 0 12月 21 23:48 stu_102999_5.jpg