Gri*_*ckz 9 shell scripting bash rename
我在找到namemangler的 Linux 版本方面没有取得太大成功,我需要重命名 1000 个文件,以便它们在 Windows 上可读。
有谁知道可以做到这一点的Linux程序?
如果没有,那么脚本可能会起作用,因为我只需要将文件夹中的所有文件重命名为前 16 个字符。我怀疑脚本路线可能值得一试,但不确定从哪里开始。
小智 11
在 Debian、Ubuntu 和衍生产品上,如果您man rename在命令提示符下输入,您将获得重命名实用程序的手册页,该实用程序允许在重命名中使用任意类似于 Perl 的正则表达式命令。
例如,这会将当前目录中的所有文件缩短(通过截断)长度为 5:
rename 's/^(.{5}).*/$1/' *
Run Code Online (Sandbox Code Playgroud)
它的工作原理是捕获前五个字符,然后在替换中使用它,删除其余字符。
另一个示例是将文件名(无扩展名)缩短为五个字符,同时保留扩展名:
rename 's/^(.{5}).*(\..*)$/$1$2/' *
Run Code Online (Sandbox Code Playgroud)
它捕获两个组,第一个是前五个字符,第二个是扩展名。这将myCarefullyCraftedDocument.pdf变成myCar.pdf.
警告:小心使用它,最好是在目录的副本上,或者首先进行备份。你被警告了!!至少,rename -n先使用,它会告诉你在不实际操作的情况下会做什么。