递归更改文件夹和子文件夹中的文件名,而无需更改文件路径

默达·拉尔夫(Murda Ralph)

我的档案格式为639486572_016b0f3d-9ec3-4ad1-84ae-c98b68390322.wav这些文件以类似于日期的文件夹和子文件夹格式驻留。./2019/05/31/639486572_016b0f3d-9ec3-4ad1-84ae-c98b68390322.wav

目标是删除之前和包括的所有内容_我能做到的rename -v 's/$\.+_//'

但是当我尝试结合使用find它时,似乎正确地重命名了子文件夹中找到的所有文件,但是将它们移动\到文件夹的根目录中im在这种情况下无法正常工作./2019

我正在运行的命令是 find -type f -name "*_*" | rename -v 's/$\.+_//'

如何确保文件位置不变?

暴民

$\ 将是未定义的,并且不会在您的正则表达式中执行任何操作。

.+_将匹配从字符串开头到最后一个_字符的所有内容,包括路径信息。您将要使用一个更严格的表达式,该表达式不能捕获整个路径。

有几种方法可以做到:

s![^/]+_!!        greedy match of consecutive non-/ chars

s!(.+/)?.+_!$1!   capture path and include it in the replacement

当您准备打开蠕虫病毒罐时,还有一种解决方案将使用否定的后向断言。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以递归方式获取文件夹和子文件夹下的所有文件,而无需子文件夹本身的路径

雷鸟更改Maildir文件夹中的文件名

Powershell 更改文件夹内一个子文件夹(副文件夹名称)中的部分文件名

更改子版本中的文件夹名称*无需*检出

将文件名更改为文件夹名

从文件名递归删除模式,而无需更改路径

更改文件夹中文件的路径

重命名文件名末尾带有$'\ r的文件(包括文件夹中的递归文件),而无需使用重命名

如何仅使用文件名来同步文件夹和子文件夹?

基于文件名中的单词的子文件夹?

htaccess将子文件夹重定向到子域,而无需更改url

在文件夹,子文件夹和多个文件中递归查找和重命名

递归清除其中没有文件的文件夹中的所有文件夹和子文件夹

在文件夹、子文件夹和多个文件中递归查找

如何递归地仅复制文件夹和子文件夹中的文件?

更改文件夹及其子文件夹中每个.txt文件的编码

更改MATLAB文件夹路径

更改文件夹中的某些文件扩展名

如何更改目录中的文件夹中的文件名?

递归打印s3中的子文件夹和子文件夹

密码保护子域中显示的文件夹和网站,而无需在该文件夹中放置文件

PowerShell获取文件名,文件夹中没有路径和TSV行数

递归列出具有文件名,文件夹名和权限的文件

如何在Python的特定文件夹中更改几个文件名?

如何更改文件夹中的所有文件名?

批量更改多个文件夹中的多个文件名

在Windows 10 UWP应用中更改MetroLog文件夹和文件名

将文件夹中的所有文件名更改为其他Python

如何快速更改文档文件夹中的文件名