资讯专栏INFORMATION COLUMN

linux 批量重命名 (你只要会用 js replace 函数)

0x584a / 2324人阅读

摘要:需求今天工作的时候需要处理一批文件,具体命名形式是,要把它们改成。下的命令有两种版本,一种是语言版本,一种是版。剩下的,只要你会用的函数就拉。对应到命令中,就是效果是和函数是一样的。

注意:rename 命令有 C 语言 和 perl 两个版本,这里只介绍 perl 版本。




需求

今天工作的时候需要处理一批文件,具体命名形式是 a_b_c.xx,要把它们改成 b_a_c.xx。

mv 命令?

mv 命令一次只能操作一个文件,这样效率就太低了。其实可以结合管道操作完成


使用 rename

我想推荐的是 rename 命令,rename 命令是专门用来重命名操作的。linux 下的 rename 命令有两种版本,一种是 C 语言版本, 一种是 perl 版。可以使用 man rename 看一下自己的是什么版本的。我电脑上的 perl 版本的,所以我就只介绍这个版本的用法啦。

基本用法:

rename "s/(查询的正则)/(替换的内容)/" 文件

其中 "s/(查询的正则)/(替换的内容)/" 是 perl 的一种正则的形式,不懂没关系,不影响我们完成重命名操作,写成 s(代表替换) 就行了。

剩下的,只要你会用 js String 的 replace 函数就 OK 拉。

如果把文件名当成是需要替换的字符串,那么在 js 里,我们会这样写。

var filename = "a_b_c.txt"
filename.replace(/(.*?)\_(.*?)\_(.*?)/, "$2_$1_$3");
//"b_a_c.txt"

对应到 rename 命令中,就是

Cool!! 效果是和 js replace 函数是一样的。这样的话,知道这个用法,就已经可以应付大多数的重命名需求了。

如果不行,请别找我...


参考文章:

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=159388

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9810.html

相关文章

  • linux 批量命名 (只要会用 js replace 函数)

    摘要:需求今天工作的时候需要处理一批文件,具体命名形式是,要把它们改成。下的命令有两种版本,一种是语言版本,一种是版。剩下的,只要你会用的函数就拉。对应到命令中,就是效果是和函数是一样的。 注意:rename 命令有 C 语言 和 perl 两个版本,这里只介绍 perl 版本。 showImg(https://segmentfault.com/img/bVKzuc?w=1404&h=500...

    reclay 评论0 收藏0
  • 使用Python批量处理工作簿和工作表

    摘要:使用批量处理工作簿和工作表批量新建并保存工作簿批量打开一个文件夹中的打开工作簿批量重命名一个工作簿的所有工作表批量重命名多个工作簿批量重命名多个工作簿中的同名工作表将一个工作簿的所有工作表批量复制到其他工作簿按条件将一 ...

    maxmin 评论0 收藏0
  • 用node写一个批量命名文件的函数

    摘要:今天吃午饭的时候突然想起来在新大上课程时,老师讲的时候提了一句说可以批量重命名文件,我就想着看看能不能实现这个功能。还有一个,听名字就是重命名相关的。 今天吃午饭的时候突然想起来在新大上JS课程时,老师讲node的时候提了一句说node可以批量重命名文件,我就想着看看能不能实现这个功能。看了node的官方文档,查到fs模块有一个readdir的API,它读取一个目录的内容,测试了一下,...

    curried 评论0 收藏0
  • 优化的DOM

    摘要:优化的本质其实就是减少树的重流与重绘。对于重流和重绘的理解,详见前端知识普及之优化的结构,无非就是引用保存,动画优化,节点保存,更新节点等基本操作。那重绘什么时候会发生呢发生重流就一定会发生重绘,但是,重绘的范围比重流稍微大了一点。 优化DOM的本质其实就是减少DOM树的重流与重绘。对于重流和重绘的理解,详见《前端知识普及之HTML》优化DOM的结构,无非就是引用保存,动画优化,节点保...

    lily_wang 评论0 收藏0
  • 如何批量删除Redis的key

    摘要:使用此选项后,空格无论是否在引号中不会作为数据块的分隔符,只有换行会被作为数据块的分隔符。如果标准输入中没有任何非空的字符,则不运行命令默认情况下即使标准输入没有非空字符,命令也会被运行一 前戏 在laravel项目中发现了一个隐藏较深的问题,关于操作redis的increment方法: $key = exchange_.$num; Cache::increment($key, 1);...

    inapt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<