shell练习题:使用for循环批量修改文件扩展名

简介:

shell练习题:使用for循环批量修改文件扩展名


说明:(1)在linux下批量修改文件名,将下图所示命令中的"_linux"去掉。

wKiom1l4QmiwnTknAAAUJsh3q_4321.png

    (2)使用for循环脚本。

思路:本题的基本解题思路,先进行单个文件的改名,然后再用循环实现批量改名,这是比较常规的做法,也可以用rename专业改名工具。

  1. 方法一:

    说明:使用cut、sed工具

    脚本如下:

    #!/bin/bash

    cd /test

    for i in `ls|grep .*.jpg`

    do

      mv $i `echo $i |cut -d '.' -f1|sed 's#_linux##'`.jpg

    done

    说明:

    wKiom1mDGxrQ6a8CAAAFBa-tVOg030.png

    wKioL1mDGS6y71GSAAAI_Fhgdyk869.png

    脚本执行情况,如下图所示:

    wKiom1l4RrCSUverAAAXg_6ebbY342.png

  2. 说明:为了进行下面的实验,我们需要对上面的文件进行数据恢复,使用cut、awk工具。

    脚本如下:

    #!/bin/bash

    #date:2017-7-26

    cd /test

    for i in `ls|grep .*.jpg`

    do

       mv $i `echo $i |cut -d '.' -f1|awk -F '_' '{print $1"_"$2"_"$3}'`_linux.jpg

    done

    说明:

    wKiom1mDGZiQ7LpaAAANrMu_mio025.png

    脚本执行情况,如下图所示:

    wKiom1l4SH3jXXLMAAAZmHYC0Xw771.png

  3. 下面我们接着使用第二种方法,批量修改文件名。

    方法二:使用cut、awk工具

    脚本如下:

    #!/bin/bash

    #date:2017-7-26

    cd /test

    for i in `ls|grep .*.jpg`

    do

       mv $i `echo $i|cut -d '.' -f1|awk -F '_' '{print $1"_"$2"_"$3}'`.jpg

    done

    说明:

    wKiom1mDGezS76ARAAANUVTMG4U453.png

    脚本执行情况,如下图所示:

    wKiom1l4RrCSUverAAAXg_6ebbY342.png

  4. 方法三:使用cut、sed工具

    脚本如下:

    #!/bin/bash

    cd /test

    for i in `ls|grep .*.jpg`

    do

       mv $i `echo $i |cut -d '.' -f1|sed -r 's#(.*)_linux#\1#'`.jpg

    done

    说明:

    wKiom1mDGkSQz2guAAAPTqJ22m8183.png

  5. 方法四:使用sed工具

    脚本如下:

    #!/bin/bash

    cd /test

    for i in `ls|grep .*.jpg`

    do

       mv $i `echo $i|sed 's#_linux##'`

    done

    说明:

    wKioL1mDGonzzyroAAAKpkLqsG4610.png

  6. 方法五:使用rename工具

    #!/bin/bash

    cd /test

    for i in `ls|grep .*.jpg`

    do

       echo $i|rename "_linux" "" *.jpg

    done

 







     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1951146,如需转载请自行联系原作者


相关文章
|
存储 运维 Shell
shell中for while until 三种循环的用法
shell编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
685 13
shell中for while until 三种循环的用法
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
1547 1
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
1302 3
|
Shell
Shell 文件包含
10月更文挑战第5天
174 4
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
344 6
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
307 3
|
Shell UED Python
Shell 循环语句:重复任务的自动化利器
在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!
200 2
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
Shell Linux Perl
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。