在Windows和Linux中,如何批量按照某种规律修改文件名

由于下载的很多资源的名称都有一些奇奇怪怪的平台前缀,存储备份的时候就想弄掉这些前缀,美观一些。所以需要一个方法来实现批量并且快速处理。这显然是图形界面无法做到的,就必须使用命令行了。为了多平台都会用,就研究了Windows和Linux两个平台的操作方法,macOS可以使用Linux的方法。

需要注意的是,使用命令做这些之前最好先将两个文件移到单独的文件夹下,然后对他们做实验,以免更加乱糟糟的了!!!

Windows

Windows中,命令提示符批量修改文件名称没有直接的方法,需要写一个脚本,这样太麻烦了,不考虑它。但是Windows PowerShell可以比较简单的做到。
为了方便演示,准备有以下文件:ab.test1.txtab.test2.txttest3.txttest4.txt
请添加图片描述
假设我们需要删除掉部分文件名称里的ab.前缀。我们可以使用以下命令(也是官方推荐的):

Get-ChildItem | Rename-Item -NewName {$_.name -replace "ab.",""}

或者更简单一点的,将Get-ChildItem替换成ls

ls | Rename-Item -NewName {$_.name -replace "ab.",""}

这些命令会对当前目录下所有的文件进行操作。 这时候查看就可以看到当前目录下所有的文件都修改好啦,如下:
请添加图片描述
但是这里需要注意一点,直接匹配替换只能替换设定好的部分,只替换包含了这部分内容的。其实这样也方便了使用。 举个例子来说明以下,我们还是替换那四个文件,这次直接只留下数字编号,其余前缀全部删除。
请添加图片描述
我们可以看到只修改了ab.test前缀的文件。

除此之外还要考虑到扩展带来的识别问题。例如删除[ab.n]前缀的话,会因为中括号,将其识别成正则表达式,并且由于里面带有.字符,而把文件扩展名的.一起删除,而且不会删除中括号本身。这样会有点麻烦。
解决方法是:先不带左中括号进行替换,这是因为PowerShell是通过左中括号来判断是不是正则表达式的。然后再用正则表达式删除左中括号。流程如下:
请添加图片描述

Linux

Linux中做到这个简直是太简单了。使用以下命令即可:

rename 's/被替换的字符/替换的字符/' *.txt

这里不论是被替换的字符替换的字符都不需要加引号,只需要放在三个斜杠之间。*.txt表示需要修改文件名称的文件,星号*表示任意字符,那么这里表示所有.txt后缀的文件。
例如想删除test1.txttest2.txttest3.txttest4.txt的test前缀,使用rename 's/test//' *.txt就好,演示如下:

zhonguncle@ubuntu:~/files$ ls
test1.txt  test2.txt  test3.txt  test4.txt
zhonguncle@ubuntu:~/files$ rename 's/test//' *.txt
zhonguncle@ubuntu:~/files$ ls
1.txt  2.txt  3.txt  4.txt

那么遇到中括号这种情况,也可以非常简单的通过反斜杠\来将元字符转换成文字字符处理。例如Windows中遇到的那个情况,只需要以下操作即可:

zhonguncle@ubuntu:~/files$ ls
'[ab.n]test1.txt'  '[ab.n]test2.txt'   test3.txt   test4.txt
zhonguncle@ubuntu:~/files$ rename 's/\[ab.n]//' *.txt
zhonguncle@ubuntu:~/files$ ls
test1.txt  test2.txt  test3.txt  test4.txt

只通过简单的rename 's/\[ab.n]//' *.txt就可以做到啦,不需要几步操作来实现这一点。

研究Windows的方法花了一点时间,希望能帮到有需要的人!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值