我有大约 15 个 100 多个目录,特别是使用伪代码你怎么能:
rename * *suffix
rename * prefix*
rename * CAPITALIZE*
Run Code Online (Sandbox Code Playgroud)
但是,将不胜感激特定于处理多个文件和目录的教程的提示或链接。
许多 linux/unix 系统带有允许通过 perl 表达式重命名的renameorrename.pl或prenameperl 脚本。在 Debian 系统上,它是随perl包一起安装的。
$ rename
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
Run Code Online (Sandbox Code Playgroud)
魔法发生在perlexpr论证中。这本质上是一小段 perl 代码,它将对每个文件名进行操作。您不需要提供任何循环,只需编写将输入转换为所需输出的代码即可。(一定要引用表达式;除非绝对必要,否则我使用单引号来防止 shell 扩展。)
因此,对于您的示例:
重命名 * *后缀
$ rename 's/$/suffix/' *
^ ^ ^^^^
| | +-- your suffix goes here
| +------- indicates end-of-string
+--------- perl's substitution operator (s/from-regex/to/)
Run Code Online (Sandbox Code Playgroud)重命名 * 前缀 *
$ rename 's/^/prefix/' *
^ ^^^^
| +-- your prefix goes here
+------- indicates beginning-of-string
Run Code Online (Sandbox Code Playgroud)重命名 * 大写 *
$ rename '$_ = uc' *
^^^^ ^^
| +-- perl builtin function to capitalize a string
+------- replaces input filename
Run Code Online (Sandbox Code Playgroud)查看 O'Reilly Unix Power Tools书中的更多示例。
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |