#####################################

#Linux下批量修改文件名案例分享

#date:2019-05-09

#Discuz论坛:www.slinuxserver.com

#QQ:1431975440

#E-mail:1431975440@qq.com

#####################################

需要修改的文件如下:

[root@localhost file]# ll

total 8

-rw-r--r--. 1 root root  98 May  9 10:04 file01.sh

-rw-r--r--. 1 root root 112 May  9 10:06 file02.sh

-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_1_finished.jpg

-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_2_finished.jpg

-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_3_finished.jpg

-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_4_finished.jpg

-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_5_finished.jpg

问题:

如何批量去掉文件名中的“_finished”单词?

解答:

方法一:用专门修改文件名的命令(rename)来实现。

【检查文件数据】

[root@localhost file]# touch sku_102999_{1..5}_finishe.jpg
[root@localhost file]# ls
file01.sh  sku_102999_1_finishe.jpg  sku_102999_3_finishe.jpg  sku_102999_5_finishe.jpg
file02.sh  sku_102999_2_finishe.jpg  sku_102999_4_finishe.jpg

【命令】

[root@localhost file]# rename _finishe "" ./*.jpg

【执行结果】

[root@localhost file]# ls
file01.sh  sku_102999_1.jpg  sku_102999_3.jpg  sku_102999_5.jpg
file02.sh  sku_102999_2.jpg  sku_102999_4.jpg

方法二:用for循环结合sed命令来实现。

【检查文件数据】

[root@localhost file]# rm -f *.jpg
[root@localhost file]# touch sku_102999_{1..5}_finished.jpg
[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_1_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_2_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_3_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_4_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_5_finished.jpg

【命令】

[root@localhost file]# for f in `ls ./*.jpg`;do mv ./$f `echo $f|sed 's#_finished##g'`;done

【执行结果】

[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_1.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_2.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_3.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_4.jpg
-rw-r--r--. 1 root root   0 May  9 18:01 sku_102999_5.jpg

方法三:用for循环结合awk命令来实现。

【检查文件数据】

[root@localhost file]# rm -f *.jpg
[root@localhost file]# touch sku_102999_{1..5}_finished.jpg
[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_1_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_2_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_3_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_4_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_5_finished.jpg

【命令】

[root@localhost file]# for f in `ls ./*.jpg`;do mv ./$f ./`echo $f|awk -F "_finished" '{print $1 $2}'`;done

【执行结果】

[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_1.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_2.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_3.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_4.jpg
-rw-r--r--. 1 root root   0 May  9 18:03 sku_102999_5.jpg

方法四:用for循环结合变量操作符的部分截取方法

【检查文件数据】

[root@localhost file]# rm -f *.jpg
[root@localhost file]# touch sku_102999_{1..5}_finished.jpg
[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_1_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_2_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_3_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_4_finished.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_5_finished.jpg

【命令】

[root@localhost file]# for f in `ls ./*.jpg`;do mv ./$f `echo ${f/_finished/}`;done

【执行结果】

[root@localhost file]# ll
total 8
-rw-r--r--. 1 root root   98 May  9 10:04 file01.sh
-rw-r--r--. 1 root root   112 May  9 10:06 file02.sh
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_1.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_2.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_3.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_4.jpg
-rw-r--r--. 1 root root   0 May  9 18:12 sku_102999_5.jpg

转载于:https://blog.51cto.com/13716812/2391929

Linux下批量修改文件名相关推荐

  1. linux下批量修改文件名精彩解答案例分享

    ######################################################### #linux下批量修改文件名精彩解答案例分享 #date:21:34 2011-11 ...

  2. linux 批量更换文件名,Linux下批量修改文件名的方法

    Linux下批量修改文件名的方法 在Linux环境下修改文件名可以有不同的命令方式,比如rename.mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改 ...

  3. linux批量修改 文件名编码,linux下批量修改文件名

    linux下批量修改文件名 0.问题来源,想把一部分文件加上日期序.也就是在文件名称前加上当前的年月日进行输出. 获取日期格式如下 Zianed@ubuntu:~/public_web_sSmO9OU ...

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

    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...

  5. linux 批量替换文件cp,Linux下批量修改文件名

    2, Perl 版本的批量重命名,带有Perl的好处是,你可以使用正则表达式来完成很奇特的功能. perl 版本的参数格式: rename  perlexpr files 注意,perl版本的rena ...

  6. linux批量修改文件名多目录,Linux下批量修改文件名

    2, Perl 版本的批量重命名,带有Perl的好处是,你可以使用正则表达式来完成很奇特的功能. perl 版本的参数格式: rename  perlexpr files 注意,perl版本的rena ...

  7. linux下批量修改文件名的方法

    最简单易用的rename命令:rename orange  apple * 就会将该目录下的所有文件名中 orange 字样修改成apple; 非常便捷.

  8. 【Linux】批量修改文件名

    [Linux]批量修改文件名 文章目录 [Linux]批量修改文件名 1. 介绍 2. rename命令 3. 示例 1. 介绍 在Linux中,当你想要改变一个文件名,使用mv命令就好了. 然而mv ...

  9. 批量修改linux服务器密码,Linux下批量修改服务器用户密码方法步骤

    Linux下批量修改服务器用户密码方法步骤 密码快要过期.由于机器数量众多,因此采用批量修改密码的方式来进行处理. 下面是具体步骤: 1.配置ssh免key # ssh-keygen -t rsa - ...

最新文章

  1. 设计模式(0)简单工厂模式
  2. 表单FORM的5个属性name,method,action,enctype,target
  3. goland http proxy 代理设置
  4. 数据传输示例 Moves.asm
  5. 36/100. Generate Parentheses
  6. django 修改日期
  7. .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用
  8. android项目编译命令行,命令行编译Android项目
  9. 【BZOJ2095】【POI2010】Bridge 网络流
  10. 博士笔记 | 周志华《机器学习》手推笔记第三章-线性模型
  11. 多线程编程-工具篇-BlockingQueue
  12. 设计模式视频教程——【从设计到模式】
  13. paip.账务系统的安全性
  14. Windows下硬盘存储情况可视化工具--WinDirStat
  15. 无盘服务器bios设置,无盘服务器bios设置
  16. html中图片以图片中心放大旋转,图片旋转放大居中
  17. grafana绘图配置查询变量+多级变量联动
  18. rtx3080ti参数 rtx3080ti什么水平 rtx3080ti评测
  19. PEWIN32 PRO site key
  20. h5广告与html5,那些刷爆朋友圈儿的H5广告大揭秘

热门文章

  1. studio 热重载应用_常用钢材型号、特性、应用范围(总结的太好啦)
  2. 华为笔试题--最长公共子串
  3. 前端工程师面试问题归纳(三、代码类)
  4. LiveCoding
  5. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲...
  6. 研究生学习阶段时间安排
  7. 删除eclipse或者MyEclipse的workspace记录
  8. Windows Phone 7 XNA触控操作之Gestures
  9. 一个利用sql 语句来实现分页的存储过程
  10. 判断一棵树是否是一颗完全二叉树☆