zoukankan      html  css  js  c++  java
  • 批量修改文件名

    批量修改文件名:将_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
  • 相关阅读:
    mysql 5.5多实例部署【图解】
    mysql多实例的配置和管理
    Xtrabackup数据全备份与快速搭建从服务器
    REST API设计指导——译自Microsoft REST API Guidelines(四)
    REST API设计指导——译自Microsoft REST API Guidelines(三)
    REST API设计指导——译自Microsoft REST API Guidelines(二)
    REST API设计指导——译自Microsoft REST API Guidelines(一)
    【活动提示】免费帮你做系统,请点击!
    程序员最大的悲哀是什么?
    工欲善其事必先利其器——产品篇
  • 原文地址:https://www.cnblogs.com/mrwang1101/p/5065344.html
Copyright © 2011-2022 走看看