如何解决根据一种模式在Linux中重命名许多文件
我最喜欢的解决方案是我自己的 重命名 脚本。映射到您的问题的最简单示例是:
% rename 's/_/-/g' *
% rename 's/(\p{Lower})(\p{Upper})/$1 $2/g' *
尽管我确实讨厌文件名中的空格,尤其是垂直空格:
% rename 's/\s//g' *
% rename 's/\v//g' *
等等。它基于The Larry Wall的脚本,但是扩展了选项,如下所示:
usage: /home/tchrist/scripts/rename [-ifqI0vnml] [-F file] perlexpr [files]
-i ask about clobbering existent files
-f force clobbers without inquiring
-q quietly skip clobbers without inquiring
-I ask about all changes
-0 read null-terminated filenames
-v verbosely says what its doing
-V verbosely says what its doing but with newlines between old and new filenames
-n don't really do it
-m to always rename
-l to always symlink
-F path read filelist to change from magic path(s)
如您所见,它不仅可以更改文件名,而且可以更改符号链接指向使用相同模式的位置。您不必使用一种s///
模式,尽管通常使用一种模式。
该目录中的其他工具主要用于Unicode工作,其中有些工具非常有用。
解决方法
我正在尝试使用mv命令执行三件事,但不确定是否可行?可能需要一个脚本。不知道怎么写。所有文件都在同一文件夹中。
1)以v9.zip结尾的文件应该只是.zip(已删除v9)
2)包含_的文件应为-
3)在大写字母旁边的小写字母(或小写字母旁边的大写字母)的文件之间应有一个空格。因此,MoveOverNow将变为“现在移过”,而ruNaway将变为ruN离开。[AZ]
[az]或[az] [AZ]变为[AZ] [az]和[az] [AZ]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。