批量重命名文件夹中的文件

凯文

如何从文件夹中的文件名中删除一些文本?

我目前正在尝试:

rename s/"NEWER_(.*?)"//g *

但是没有什么被重命名

我有一个父文件夹,文件中有一堆子文件夹,OneDrive认为将“(NEWER_timestamp)”附加到该文件夹​​是一个好主意,我想删除该文件夹。

示例文件名:

getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
αғsнιη

请尝试以下方法:

find /path/to/parrent-dir -type f -exec rename -n 's:[^/]*(.*) .*$:$1:' {} +

./o7th.ico (NEWER_1417529135.81)                                 renamed as /o7th.ico
./sub-dir (NEWER_1417529135.81)/getyou.ico (NEWER_1417529079.87) renamed as /sub-dir (NEWER_1417529135.81)/getyou.ico
./sub-dir (NEWER_1417529135.81)/o7pm.ico (NEWER_1417529184.89)   renamed as /sub-dir (NEWER_1417529135.81)/o7pm.ico
./getyou.ico (NEWER_1417529079.87)                               renamed as /getyou.ico
./o7pm.ico (NEWER_1417529184.89)                                 renamed as /o7pm.ico
  • 全部[^/]*(.*) .*$仅匹配不包含的路径的最后一部分/
  • 在上面的正则表达式中,(.*)是一组匹配所有在最后/一个空格之后和一个空格之前的字符其后向引用将为$1
  • .*$将所有内容与$文件名末尾的空格匹配
  • 最后,在重命名的替换部分中s/.../REPLACEMENT/,我们只保留了last\与之匹配的空间之间的匹配组(.*)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章