【发布时间】:2011-02-09 12:33:26
【问题描述】:
如何在 linux 中替换文件夹名称中的相同文本?
假设我有“Photos_Jun”、“Photos_July”、“Photos_Aug”等。我可以将它们重命名为“Photos Jun”、“Photos July”等的最简单方法是什么(基本上我想用下划线替换空格“”。我有大约 200 个这样的文件夹。
我正在寻找解决方案:How can I easily bulk rename files with Perl?
它看起来像我正在寻找的东西,但我不知道如何制作正则表达式来匹配字母数字后跟“_”的文件夹。
所有文件都有非数字名称,所以我认为 [a-zA-Z] 是正确的开始方式。
perl -e 'foreach $f (glob("File\\ Name*")) { $nf = $f; $nf =~ s/(\d+)$/sprintf("%03d",$1)/e; print `mv \"$f\" \"$nf\"`;}'
感谢您的帮助!
【问题讨论】:
-
感谢所有回答的人,非 perl 解决方案最适合我。我有几个破折号要删除,当我用 - 替换 _ 时,它也很有效。
标签: regex perl search replace directory