我正在尝试使用mv命令执行三件事,但不确定是否可行?可能需要一个脚本。不知道怎么写。所有文件都在同一文件夹中。
1)以v9.zip结尾的文件应该只是.zip(已删除v9)
2)包含_的文件应为-
3)在大写字母旁边的小写字母(或小写字母旁边的大写字母)的文件之间应有一个空格。因此,MoveOverNow将变为“现在移过”,而ruNaway将变为ruN离开。[AZ] [az]或[az] [AZ]变为[AZ] [az]和[az] [AZ]
我最喜欢的解决方案是我自己的 重命名 脚本。映射到您的问题的最简单示例是:
% 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///模式,尽管通常使用一种模式。
s///
该目录中的其他工具主要用于Unicode工作,其中有些工具非常有用。