实际案例批量修改文件名
准备测试数据
[root@localhost sub_str]# touch xujianbing_{1..5}_finished.jpg
[root@localhost sub_str]# touch xujianbing_{1..5}_finished.png
[root@localhost sub_str]# ll
总用量 0
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_1_finished.jpg
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_1_finished.png
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_2_finished.jpg
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_2_finished.png
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_3_finished.jpg
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_3_finished.png
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_4_finished.jpg
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_4_finished.png
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_5_finished.jpg
-rw-r--r--. 1 root root 0 9月 13 15:53 xujianbing_5_finished.png
[root@localhost sub_str]#
应用实例
-
去掉所有文件的_finished字符信息
#!/bin/bash ###也可以用ls命令只列出名称 ls *.jpg ;ls *.png ##当然我想的grep for var in `find ./ |grep finished` do ####echo ${var#./} var1=${var#./} var2=${var1/finished/} mv ${var1} ${var2} echo ${var1}文件修改为 ${var2} done [root@localhost sub_str]# sh chfilename.sh xujianbing_1_finished.jpg文件修改为 xujianbing_1_.jpg xujianbing_2_finished.jpg文件修改为 xujianbing_2_.jpg xujianbing_3_finished.jpg文件修改为 xujianbing_3_.jpg xujianbing_4_finished.jpg文件修改为 xujianbing_4_.jpg xujianbing_5_finished.jpg文件修改为 xujianbing_5_.jpg xujianbing_1_finished.png文件修改为 xujianbing_1_.png xujianbing_2_finished.png文件修改为 xujianbing_2_.png xujianbing_3_finished.png文件修改为 xujianbing_3_.png xujianbing_4_finished.png文件修改为 xujianbing_4_.png xujianbing_5_finished.png文件修改为 xujianbing_5_.png
###方法2 [root@localhost sub_str]# ls *fini* xujianbing_1_finished.jpg xujianbing_2_finished.jpg xujianbing_3_finished.jpg xujianbing_4_finished.jpg xujianbing_5_finished.jpg xujianbing_1_finished.png xujianbing_2_finished.png xujianbing_3_finished.png xujianbing_4_finished.png xujianbing_5_finished.png [root@localhost sub_str]# for filename in `ls *fini*`; do mv ${filename} ${filename/finished/}; done [root@localhost sub_str]# ll 总用量 0 -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_1_.jpg -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_1_.png -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_2_.jpg -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_2_.png -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_3_.jpg -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_3_.png -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_4_.jpg -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_4_.png -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_5_.jpg -rw-r--r--. 1 root root 0 9月 13 16:32 xujianbing_5_.png [root@localhost sub_str]#
注意:1)可以先考虑去掉单个文件的字符,2)利用变量子串去掉字符,3)``反引号获取命令执行结果