zoukankan      html  css  js  c++  java
  • shell-批量修改文件名及扩展名多案例

    1. 功能描述如下表:

      批量文件改名案例实战:
      问题1:
      创建测试数据

    [root@1-241 tmp]# for i in `seq 6`;do touch stu_161226_${i}_finished.jpg;done 
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_1_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_2_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_3_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_4_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_5_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:35 stu_161226_6_finished.jpg

      开始修改

    [root@1-241 tmp]# for i in `ls *.jpg`;do mv "$i" "${i%finished*}.jpg"; done
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 16:44 stu_161226_1_.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:44 stu_161226_2_.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:44 stu_161226_3_.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:44 stu_161226_4_.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:44 stu_161226_5_.jpg
    

    2. 功能描述

       问题2:把下面文件的jpg变成html扩展名:
       创建测试数据

    [root@1-241 tmp]# touch stu_161226_{1..6}_finished.jpg 
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_1_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_2_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_3_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_4_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_5_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_6_finished.jpg

       开始修改

    [root@1-241 tmp]# for i in `ls *.jpg`; do mv $i ${i/%jpg/html}; done 
    
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_1_finished.html
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_2_finished.html
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_3_finished.html
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_4_finished.html
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_5_finished.html
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_6_finished.html

    3. 小结:

    mv $i ${i%.jpg}.html
    mv $i `echo $i |sed 's/jpg/html/g'`
    mv $i `echo "${i/%jpg/html}"`
    

    4. 利用awk处理

    [root@1-241 tmp]# ls *.jpg
    stu_161226_1_finished.jpg stu_161226_3_finished.jpg stu_161226_5_finished.jpg
    stu_161226_2_finished.jpg stu_161226_4_finished.jpg stu_161226_6_finished.jpg
    [root@1-241 tmp]# ls *.jpg |awk -F "finished" '{print $0}' stu_161226_1_finished.jpg stu_161226_2_finished.jpg stu_161226_3_finished.jpg stu_161226_4_finished.jpg stu_161226_5_finished.jpg stu_161226_6_finished.jpg
    [root@1-241 tmp]# ls *.jpg |awk -F "finished" '{print $0,$1 }' stu_161226_1_finished.jpg stu_161226_1_ stu_161226_2_finished.jpg stu_161226_2_ stu_161226_3_finished.jpg stu_161226_3_ stu_161226_4_finished.jpg stu_161226_4_ stu_161226_5_finished.jpg stu_161226_5_ stu_161226_6_finished.jpg stu_161226_6_
    [root@1-241 tmp]# ls *.jpg |awk -F "finished" '{print $0,$1$2 }' stu_161226_1_finished.jpg stu_161226_1_.jpg stu_161226_2_finished.jpg stu_161226_2_.jpg stu_161226_3_finished.jpg stu_161226_3_.jpg stu_161226_4_finished.jpg stu_161226_4_.jpg stu_161226_5_finished.jpg stu_161226_5_.jpg stu_161226_6_finished.jpg stu_161226_6_.jpg
    [root@1-241 tmp]# ls *.jpg |awk -F "finished" '{print "mv " $0,$1$2}' mv stu_161226_1_finished.jpg stu_161226_1_.jpg mv stu_161226_2_finished.jpg stu_161226_2_.jpg mv stu_161226_3_finished.jpg stu_161226_3_.jpg mv stu_161226_4_finished.jpg stu_161226_4_.jpg mv stu_161226_5_finished.jpg stu_161226_5_.jpg mv stu_161226_6_finished.jpg stu_161226_6_.jpg
    [root@1-241 tmp]# ls *.jpg |awk -F "finished" '{print "mv " $0,$1$2}' |bash [root@1-241 tmp]# ll 总用量 0 -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_1_.jpg -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_2_.jpg -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_3_.jpg -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_4_.jpg -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_5_.jpg -rw-r--r--. 1 rootrm root 0 12月 23 16:53 stu_161226_6_.jpg

    5. 利用rename更改

    [root@1-241 tmp]# touch stu_161226_{1..6}_finished.jpg 
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_1_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_2_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_3_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_4_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_5_finished.jpg
    -rw-r--r--. 1 root root 0 12月 23 16:53 stu_161226_6_finished.jpg
    [root@1-241 tmp]# rename "finished" "" *.jpg
    [root@1-241 tmp]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_1_.jpg
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_2_.jpg
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_3_.jpg
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_4_.jpg
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_5_.jpg
    -rw-r--r--. 1 root root 0 12月 23 17:42 stu_161226_6_.jpg

    6:拓展:其他变量的替换
    变量替换表:

     

    7. 下面依次举例说明:
    1、${value:-word} 当变量未定义或者值为空时,返回值为word内容,否则返回变量的值
    举例:

    [root@1-241 ~]# aa=${bb:-word}
    [root@1-241 ~]# echo $bb
    ==>这里是空
    [root@1-241 ~]# echo $aa
    word
    

    8. ${value:=word}

    与前者类似,只是若变量未定义或者值为空时,在返回word的值得同时将word赋值给value

    [root@1-241 ~]# aa=${bb:=word}
    [root@1-241 ~]# echo $bb
    word
    [root@1-241 ~]# echo $aa
    word
    

      

     
  • 相关阅读:
    使用mongoose--写接口
    数据结构上机实验(2)
    时间复杂度十道练习题目
    Python网络爬虫实战入门
    区分矩阵的三大关系
    用python检查矩阵的计算
    ab矩阵(实对称矩阵)
    Python大数据应用
    数据结构上机实验(1)
    0038. Count and Say (E)
  • 原文地址:https://www.cnblogs.com/scajy/p/12762464.html
Copyright © 2011-2022 走看看