当前位置: 首页 > news >正文

linux下的文件操作——批量重命名

概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等。文本主要为你讲解如何实现这些操作


1、删除所有的 .bak 后缀:


rename 's/\.bak$//' *.bak

注意,这个命令的格式组织如下:s/   \.bark$   / / 是s/para1/para2/ 这个有点想sed的语法,将para1匹配的字符串换成para2


2、把 .jpe 文件后缀修改为 .jpg:


rename 's/\.jpe$/\.jpg/' *.jpe


3、把所有文件的文件名改为小写:


rename 'y/A-Z/a-z/' *


4、将 abcd.jpg 重命名为 abcd_efg.jpg:


for var in *.jpg; do mv "$var" "${var%.jpg}_efg.jpg"; done

其中,此处涉及到shell的字符串匹配操作:

1> ${variable#pattern}
如果pattern匹配variable的开始部分,从variable的开始处删除字符直到第一个匹配的位置,包括匹配部分,返回剩余部分。

2> ${variable##pattern}
如果pattern匹配variable的开始部分,从variable的开始处删除字符直到最后一个匹配的位置,包括匹配部分,返回剩余部分。

3> ${variable%pattern}
如果pattern匹配variable的结尾部分,从variable的结尾处删除字符直到第一个匹配的位置,包括匹配部分,返回剩余部分。

4> ${variable%%pattern}
如果pattern匹配variable的结尾部分,从variable的结尾处删除字符直到最后一个匹配的位置,包括匹配部分,返回剩余部分。


5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:


for var in *.jpg; do mv "$var" "${var%_efg.jpg}_lmn.jpg"; done


6、把文件名中所有小写字母改为大写字母:


for var in `ls`; do mv -f "$var" `echo "$var" |tr a-z A-Z`; done

tr:traslate or delete characters


7、把格式 *_?.jpg 的文件改为 *_0?.jpg:


for var in `ls *_?.jpg`; do mv "$var" `echo "$var" |awk -F '_' '{print $1 "_0" $2}'`; done


8、把文件名的前三个字母变为 vzomik:


for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/^.../vzomik/'`; done


9、把文件名的后四个字母变为 vzomik:


for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/....$/vzomik/'`; done


参考:

文本来源:谁不小心的CSDN博客:linux文件操作——批量重命名


 

相关文章:

  • svn版本控制-windows篇
  • 目标检测面面观
  • 支付-微信支付(1)
  • 如何让open***在windows启动时自动加载
  • swift学习笔记《4》
  • myeclipse中如何查看jdk的类文件
  • WPF 控件库——带有惯性的ScrollViewer
  • 利用 docker 配置 pinbot-crawl 环境
  • Express简介
  • Spring源码剖析依赖注入实现
  • Linux中关机命令详解
  • 迷茫的时候就看看这100句,希望对你有所启发
  • 洛谷 P1855 榨取kkksc03 (二维费用背包)
  • 我的前端工具集(一)日期时间转换工具
  • Html5之Web存储
  • 2017 前端面试准备 - 收藏集 - 掘金
  • angular2 简述
  • Hibernate最全面试题
  • HTTP--网络协议分层,http历史(二)
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 搭建gitbook 和 访问权限认证
  • 诡异!React stopPropagation失灵
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 码农张的Bug人生 - 见面之礼
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 软件开发学习的5大技巧,你知道吗?
  • 首页查询功能的一次实现过程
  • 微信小程序--------语音识别(前端自己也能玩)
  • ​ubuntu下安装kvm虚拟机
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • %check_box% in rails :coditions={:has_many , :through}
  • (003)SlickEdit Unity的补全
  • (4)STL算法之比较
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (强烈推荐)移动端音视频从零到上手(下)
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (轉貼) UML中文FAQ (OO) (UML)
  • ***检测工具之RKHunter AIDE
  • *p++,*(p++),*++p,(*p)++区别?
  • .form文件_一篇文章学会文件上传
  • .md即markdown文件的基本常用编写语法
  • .net反编译的九款神器
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET是什么
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @Bean, @Component, @Configuration简析
  • @NestedConfigurationProperty 注解用法
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600