1. 通过专业的改名命令rename实现

[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]# rename "finished" "" * ==>执行批量改名
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.jpg
-rw-r--r-- root root Nov : stu_102999_2_.jpg
-rw-r--r-- root root Nov : stu_102999_3_.jpg
-rw-r--r-- root root Nov : stu_102999_4_.jpg
-rw-r--r-- root root Nov : stu_102999_5_.jpg
拓展下:改扩展名的方法
[root@oldboy oldboy]# rename .jpg .oldboy *
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.oldboy
-rw-r--r-- root root Nov : stu_102999_2_.oldboy
-rw-r--r-- root root Nov : stu_102999_3_.oldboy
-rw-r--r-- root root Nov : stu_102999_4_.oldboy
-rw-r--r-- root root Nov : stu_102999_5_.oldboy

2. ls结合awk实现

[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $0}'
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
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $1}'
stu_102999_1_
stu_102999_2_
stu_102999_3_
stu_102999_4_
stu_102999_5_
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $2}'
.jpg
.jpg
.jpg
.jpg
.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $1$2}'
stu_102999_1_.jpg
stu_102999_2_.jpg
stu_102999_3_.jpg
stu_102999_4_.jpg
stu_102999_5_.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print "mv "$0" "$1$2" "}'|/bin/bash
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.jpg
-rw-r--r-- root root Nov : stu_102999_2_.jpg
-rw-r--r-- root root Nov : stu_102999_3_.jpg
-rw-r--r-- root root Nov : stu_102999_4_.jpg
-rw-r--r-- root root Nov : stu_102999_5_.jpg

3. shell脚本for循环加变量的部分截取方法

[root@oldboy oldboy]#ls -l
total
-rw-r--r-- root root Nov : change_file_name.sh
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]#cat change_file_name.sh
#!/bin/sh
# oldboy QQ:
for file in `ls ./*.jpg`
do
/bin/mv $file `echo "${file%finished*}.jpg"` #这里就是变量的截取新方法,在老男孩的shell编程课程中会讲到此用法。
done
[root@oldboy oldboy]#sh change_file_name.sh
[root@oldboy oldboy]#ls -l
total 4
-rw-r--r-- 1 root root 114 Nov 14 00:21 change_file_name.sh
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_1_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_2_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_3_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_4_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_5_.jpg
特别提示:本脚本和文件在同一目录

4. shell脚本for循环结合sed实现

[检查数据]
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Oct : oldboy_modi_file.sh
-rw-r--r-- root root Oct : stu_102999_1_finished.jpg
-rw-r--r-- root root Oct : stu_102999_2_finished.jpg
-rw-r--r-- root root Oct : stu_102999_3_finished.jpg
-rw-r--r-- root root Oct : stu_102999_4_finished.jpg
-rw-r--r-- root root Oct : stu_102999_5_finished.jpg [开发脚本]
[root@oldboy oldboy]# cat oldboy_modi_file.sh
#!/bin/sh
for file in `ls ./*.jpg`
#shell脚本for循环,file为变量依次取得ls ./*.jpg的结果文件名
do
mv $file `echo $file|sed 's/finished//g'`
#使用mv命令进行更改文件,新的文件名字符串拼接是本题的重点。
done
#特别提示:通过本题,可以学习到for循环的使用,及mv、sed等命令的使用 [执行脚本]
[root@oldboy oldboy]# sh oldboy_modi_file.sh [检查结果]
[root@oldboy oldboy]# ll
total 4
-rw-r--r-- 1 root root 85 Oct 2 12:54 oldboy_modi_file.sh
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_1_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_2_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_3_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_4_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_5_.jpg

转自老男孩博客:http://oldboy.blog.51cto.com/2561410/711342

Linux学习之批量修改文件名的更多相关文章

  1. linux rename命令批量修改文件名

    修改文件名可以用mv命令来实现 mv filename1 filename2 1 但如果批量修改还是使用rename命令更为方便 现在我们有a b c d 四个文件 增加后缀 rename 's/$/ ...

  2. 【Linux】Shell批量修改文件名

    修改文件名,替换中间字符: 例如:ABC_define_EFG.jpg,要把中间的define替换成argument: 用如下脚本即可: for var in *; do mv "$var& ...

  3. linux下C++遍历文件夹下的全部文件;Windows/Linux下C++批量修改文件名,批量删除文件

    Linux下 C++遍历目录下所有文件 rename(image_path.c_str(), image_path_new.c_str()); remove(image_path_move.c_str ...

  4. Linux利用sed批量修改文件名

    初始文件名 # ls -lh total 5.5G -rw-r--r-- 1 root root 193K Sep 28 09:38 20180908.txt drwxr-xr-x 2 root ro ...

  5. Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等

    http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...

  6. linux批量修改文件名的shell脚本

    linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令  ========================  NAME ...

  7. Linux下批量修改文件名(rename)

    原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...

  8. linux 批量修改文件名 文件名只保留部分,去掉部分

    问题:linux系统中文件名包含中文,导致页面访问不了文件.就是上条博客中的解决方法二遗留问题. 文件名中有以下格式:TC2_诺而达铜管(中山)有限公司.pdf ,要改为TC2.pdf,去掉中文部分 ...

  9. shell脚本:批量修改文件名

    参考链接1:shell脚本:批量修改文件名(删除文件名中字符) 参考链接2:linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 ) 参考链接3:每天一个linux ...

随机推荐

  1. 机器学习:Mean Shift聚类算法

    本文由ChardLau原创,转载请添加原文链接https://www.chardlau.com/mean-shift/ 今天的文章介绍如何利用Mean Shift算法的基本形式对数据进行聚类操作.而有 ...

  2. spingboot集成jpa(二)

     一.使用单元测试 单元测试在每个项目环境中必不可少,springboot中如何使用单元测试 在src/test/java中新建测试类DemoApplicationTest.java 项目结构: De ...

  3. [转]Python与设计模式

    一.创建类设计模式 前言 什么样的程序员是一个好的程序员?学会很多门编程语言,就是一个好的程序员了么?事实上,学会一门编程语言不是一件很难的事,而“学会”一门编程语言是非常难的一件事.前一个“会”强调 ...

  4. Linux 终端下快速移动光标

    ctr+a:移动光标到命令行开始处(紧接命令提示符号) ctr+e:移动光标到命令行行尾 ctr+k:删除光标到命令行行尾 ctr+u:删除光标到命令行开始处 ctr+h: 往后删除一字符 ctr+d ...

  5. js学习系列之-----apply和call

    apply call 从字面意思就看出来,申请请,呼叫. 打个比方就是别人有什么功能,你向别人,申请 呼叫 一下,哥们拿你的功能用一下,而apply 和call就是实现这样的功能 apply 和cal ...

  6. 创建ajax对象并兼容多个浏览器方法简单记录

    这篇文章主要介绍了如何创建ajax对象并兼容多个浏览器,需要的朋友可以参考下<script> function createAjax(){ var request=false; //win ...

  7. ElasticSearch0910学习

    1:es简介 es是一个分布式的搜索引擎,使用java开发,底层使用lucene. 特点:天生支持分布式的.为大数据而生的.基于restful接口. 2:es和solr对比 接口 solr:类似web ...

  8. selenium定位方法(java实例)(二)

    从下图中可以看到selenium有三类定位元素的方法,一种是直接通过属性.标签以及链接来定位,一种是XPath方式,最后一种是CSS方式. 下表列举了元素定位的例子 selenium之页面元素定位方法 ...

  9. Python RGB 和HSV颜色相互转换

    转自:http://outofmemory.cn/code-snippet/1002/Python-RGB-HSV-color-together-switch Python RGB 和HSV颜色相互转 ...

  10. Python版本,pip版本手动管理

    http://blog.csdn.net/jiandanjinxin/article/details/53175121