我正在用正则表达式重命名文件...
f='/path/to/file'
rename 's/(^.*)([ab])(.*)([cd])(.*$)/$1$4$3$2$5/s' "$f"
然后我如何获得重命名文件的句柄,以便我可以处理它,因为我不知道它将被重命名是什么?
我正在用正则表达式重命名文件...
f='/path/to/file'
rename 's/(^.*)([ab])(.*)([cd])(.*$)/$1$4$3$2$5/s' "$f"
然后我如何获得重命名文件的句柄,以便我可以处理它,因为我不知道它将被重命名是什么?
您必须将任务分成几部分提交 - 找到要重命名的文件,生成转换后的文件名,然后应用它。此时您知道目标文件名,因此您可以进一步处理它
您可能想要添加错误检查,例如确保目标不存在、源确实存在等。
您正在给出
rename
一个 Perl 表达式(更准确地说是一个替换)。不用将该表达式提供给 ,而是rename
使用 Perl 对其进行评估,然后移动您的文件:或者,只需使用表达式输出新名称并从以下位置捕获它
rename
:这是假设您使用的是
rename
基于 Perl 的File::Rename
模块。