所以我有一个包含嵌套文件夹的目录,并且在某些时候有.png
图像。
这些图片的命名是这样的“letters_numbers_numbers_letters.png”,我想删除数字之间的下划线。
假设我们有一个名为 的文件a_1_2_b.png
,我想将其重命名为a_12_b.png
. 我知道我必须使用类似的东西:
find . -name "*[0-9]_[0-9]* -type f -exec bash -c <enter_code here>`
但我不确定如何指定如何删除这个特定的下划线。请记住,我不想触及另外两个下划线。
提前致谢!
perl
使用's的变体之一rename
。例如,使用那个(rename
类 Debian 系统中的包):(高兴时删除
-n
(试运行))。使用
zsh
,您可以执行以下操作:它有点复杂,因为在 zsh glob 中没有 perl 的环视正则表达式运算符。
那些删除了
_
每个常规文件名中被数字包围的所有 s (例如将dir_1_2_3/file_1_2_foo_22_3_4_bar
文件重命名dir_1_2_3/file_12_foo_2234_bar
为)。要仅删除
_
遵循该letters_digits_digits_letters.png
模式的常规文件中的第二个,那就是: