linux sed名宁,Linux shell利用sed批量更改文件名的方法

微子网络与大家分享了在Linux shell中使用sed批量更改文件名的方法。希望你看完这篇文章有所收获。大家一起讨论一下。

示例

去除特定字符

目标:把2017-01-01.jpg和2018-01-01.jpg变成20170101.jpg和20180101.jpg

方法:用空值替换全部

for filein ` ls | grep . jpg ` s

newfile=`echo$file|sed的/-//g ' `

mv$file$newfile

在此完成,sed用于替换标准输出的字符串,其一般格式如下:

Stdout|sed的/pattern/replace/'在上面的示例中,在末尾添加了G以替换所有匹配项,而不仅仅是第一个匹配项。

中间插入字符

目标:把book-01.txt和纸-02.txt改成book-01 . txt和纸-02.txt。

方法:利用组匹配获取待插入位置两侧的字符串,然后用反向引用替换

for filein ` ls | grep . txt ` s

newfile=`echo$file|sed的/\([a-z]\ \)\([0-9]\ \)/\1-\2/' '

mv$file$newfile

完成分析

在上面的例子中,要重命名的文件列表是通过ls和grep命令获得的,然后用sed命令替换字符串,最后用mv命令更改文件名。

有很多方法可以得到要重命名的文件列表,比如find命令或者直接字符串,后面会提到。

注意ls | grep。for循环后的txt。该命令包含在两个反单引号中,其功能与$(ls | grep)相同。txt)。封闭的字符串将作为命令执行,然后返回字符串结果。

文件名包含空格的解决方法

我们可以将文件列表直接写入for循环,而不是通过命令获取,例如:

对于文件“文件1文件2文件3”

.

Done可以看到for循环按空格拆分字符串,所以如果要更改的文件名包含空格,就会被拆分成多个文件名,导致错误。

为了解决这个问题,我们可以将IFS(内部字段分隔符)设置为一个新的行字符\n,这样for循环就会逐行获取变量的值,保证每次都得到一个完整的文件名。

设置IFS变量的命令需要放在for循环之前:

IFS=$'\n '

forfilein`ls

.

完成也可以直接使用while read命令一次读取一行到变量文件中:

ls|grep'*。txt“| while readfile”

.

完成使用 find 获取文件列表

在前面的例子中,我们使用ls命令来获取文件列表。这个命令只能获取某个目录的文件,不能按多个条件过滤。

说到文件搜索,不得不提功能强大的find命令。该命令可以在多级目录中查找文件,并可以设置创建时间、文件大小、所有者等各种条件。查找文件特别方便灵活。

使用find命令获取文件列表,然后使用sed命令用正则表达式修改文件名。这两个命令的组合可以完成几乎所有常见的批量重命名任务。

例如,所有大于1M且后缀为txt或jpg的文件都从book_20170101.txt和image_20170101.jpg格式的文件重命名为20170101-book.txt和20170101-image.jpg,代码如下:

forfilein`find。-大小1M-名称' *_*。txt'-o-name'*_*。jpg ' ` s

newfile=`echo$file|sed的/\([a-z]\ \)_\([0-9]\ \)。/\2-\1./'`

mv$file$newfile

读完这篇文章,done相信你已经对Linux shell中使用sed批量更改文件名的方法有了一定的了解。如果您想了解更多相关知识,请关注微子网络,感谢您的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android手机给iphone越狱,一台ROOT后的安卓手机:可以用来给iOS 13越狱了

iOS 13时代的越狱工具主要包括unc0ver和Checkra1n两款,前者最新的v4.2.1版本已经支持A9到A13设备从除了支持的设备和系统多,unc0ver的一大优势在于可在iOS设备上独立完成越狱操作,Checkra1n则需要借助电脑,包括重启失效后也是如此…

502 Bad Gateway The server returned an invalid or incomplete response

问题描述:最近在登陆某大学网站时,网站如下: https://yzb.tju.edu.cn/ 发现登录不进去,报了502 Bad Gateway The server returned an invalid or incomplete response这个错误。 问题解决:将https改为http&#xff0…

iOS VIPER架构(三)

路由是实现模块间解耦的一个有效工具。如果要进行组件化开发,路由是必不可少的一部分。目前iOS上绝大部分的路由工具都是基于URL匹配的,优缺点都很明显。这篇文章里将会给出一个更加原生和安全的设计,这个设计的特点是: 路由时用p…

android camera滑动,Android怎么实现小米相机底部滑动指示器

Android怎么实现小米相机底部滑动指示器发布时间:2021-04-15 14:39:38来源:亿速云阅读:94作者:小新这篇文章给大家分享的是有关Android怎么实现小米相机底部滑动指示器的内容。小编觉得挺实用的,因此分享给大家做个参考…

laravel安装laravel-ide-helper扩展进行代码提示(二)

一、扩展的地址 https://github.com/barryvdh/laravel-ide-helper二、安装扩展 1、引入库: composer require barryvdh/laravel-ide-helper composer require doctrine/dbal如果只想在开发环境上使用,请加上--dev composer require --dev barryvdh/larav…

android md 颜色,安卓MD(Material Design)规范

Md规范是一种设计风格,并不特指规范。是一种模拟纸张的手法。一、核心思想把物理世界的体验带进屏幕。去掉现实中的杂质和随机性,保留其最原始纯净的形态、空间关系、变化与过度,配合虚拟世界的灵活特性,还原最贴近真实的体验&…

Mariadb修改root密码

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下,新安装的 mariadb 的密码为空,在shell终端直接输入 mysql 就能登陆数据库。 如果是刚安装第一次使用,请使用 mysql_secure_installation 命令初始化。 # mysql_secure_inst…

【译】Googler如何解决编程问题

本文是Google工程师Steve Merritt的一篇博客,向大家介绍他自己和身边的同事解决编程问题的方法。 原文地址:blog.usejournal.com/how-a-googl… 在本文中,我将完整的向你介绍一种解决编程问题的策略,这个策略是我在日常工作中一直…

自学html和css,学习HTML和CSS的5大理由

描述人们学习HTML和CSS最常见的原因是开始从事web开发。但并不是只有web开发人员才要学习HTML和CSS的核心技术。作为一个网络用户,你需要你掌握的相关技术很多,但下面有5个你无法拒绝学习HTML和CSS的理由。1、轻松制作卡通动画Web上的动画很多年来都是使…

html 左侧 树形菜单,vue左侧菜单,树形图递归实现代码

学习vue有一段时间了,最近使用vue做了一套后台管理系统,左侧菜单需求是这样的,可以多层,数据由后台传递。也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享。效果图如下所示:先说…

Node.js的基本使用3

koa(扩展知识, 建议学习) koa是express超集(进阶版)前后端分离和耦合概念介绍 面向过程 -》 面向对象 --》 面向服务数据库 Node.js mongodb(bson json的超集) 分类: 关系型数据库: MySql非关系型数据库: MongoDB Mong…

Flutter的滚动以及sliver约束

Flutter框架中有很多滚动的Widget,ListView、GridView等,这些Widget都是使用Scrollable配合Viewport来完成滚动的。我们来分析一下这个滚动效果是怎样实现的。 Scrollable在滚动中的作用 Scrollable继承自StatefulWidget,我们看一下他的State的build方法…

页面增加html,为静态页面HTML增加session功能

一般来说,只有服务器端的CGI程序(ASP、PHP、JSP)具有session会话功能,用来保存用户在网站期间(会话)的活动数据信息,而对于数量众多的静态页面(HTML)来说,只能使用客户端的cookies来保存临时活动数据,但对于cookies的操…

关于Istio 1.1,你所不知道的细节

本文整理自Istio社区成员Star在 Cloud Native Days China 2019 北京站的现场分享 第1则 主角 Istio Istio作为service mesh领域的明星项目,从2016年发布到现在热度不断攀升。 Istio & Envoy Github Star Growth 官网中Istio1.1的架构图除了数据面的Envoy和控制面…

html调用父页面的函数,js调用父框架函数与弹窗调用父页面函数的方法

调用父级中的 aaa的函数子页面中:οnclick"window.parent.frames.aaa()"父页面中:function aaa(){alert(‘bbbbb’);}----------------------------------------------frame框架里的页面要改其他同框架下的页面或父框架的页面就用parentwindow.opener引用的是window.…

读卡距离和信号强度两方面来考虑

选择物联宇手持终端机的时候,你可以参考以下几个原则:选择行业需要应用功能,能有效控制好预算。屏幕界面需要高清晰的,选用分辨率较高的能更好的支持展现。按照项目所需求的来分析,需要从读卡距离和信号强度两方面来考…

html script 放置位置,script标签应该放在HTML哪里,总结分享

几年前,有经验的程序员总是让我们将很明显,现在浏览器有了更加酷的兼容方式,这篇文章,俺将跟大家一起来学习script标签的async和defer新特性,探讨script应该放在哪里更好。页面加载方式在我们讨论当浏览器加载带有获取…

2021吉林高考26日几点可以查询成绩,2021吉林高考成绩查分时间及入口

2021吉林高考成绩查分时间及入口2021吉林高考成绩查分时间及入口,有一些高考生真的很积极,考完试当天就将答案给对好了,考试嘛,站在旁观者的角度来看总是有人欢喜有人忧。估出来分数不咋地的,整个六月就毁了。2021吉林…

easyui,layui和 vuejs 有什么区别

2019独角兽企业重金招聘Python工程师标准>>> easyui是功能强大但是有很多的组件使用功能是十分强大的,而layui是2016年才出来的前端框架,现在才更新到2.x版本还有很多的功能没有完善,也还存在一些不稳定的情况,但是lay…

广东2021高考成绩位次查询,广东一分一段表查询2021-广东省2021年一分一段统计表...

广东省高考一分一段表是同学们在填报高考志愿时的重要参考资料之一。根据一分一段表,大家不仅可以清楚地了解自己的高考成绩在全省的排名,还可以结合心仪的大学近3年在广东省的录取位次变化,判断出自己被录取的概率大概是多少。根据考试院公布…