gpt4 book ai didi

Perl 的重命名 : GATES, Bill -> Bill Gates

转载 作者:行者123 更新时间:2023-12-01 07:29:43 26 4
gpt4 key购买 nike

假设我有类似 GATES, Bill.jpg 的文件我想将它们全部重命名为 Bill Gates.jpg .我能捕捉到这两个词

rename 's/^(.*?), (.*?)\./$2 $1\./g' *

要更改大小写,有一些 Perl 的功能:
$lower = lc("aBcDe");  # $lower is assigned "abcde" 
$upper = uc("aBcDe"); # $upper is assigned "ABCDE"
$lower = lcfirst("HELLO"); # $lower is assigned "hELLO"
$upper = ucfirst("hello"); # $upper is assigned "Hello"

我试图利用它们:
rename 's/^(.*?), (.*?)\./$2 ucfirst($1)\./g' *

但它不起作用。

最佳答案

您需要在正则表达式的末尾添加“e”(eval)标志,否则该函数将不会被执行。这意味着 s/// 的整个第二部分表达式必须是有效的 Perl 表达式(而不是有效的字符串):

rename 's/^(.*?), (.*?)\./"$2 " . ucfirst(lc($1)) . "."/ge' *

(还要注意字符串内的额外空格 $2 )

有关此标志的更多信息可以在 perlre 中找到。文档。

关于Perl 的重命名 : GATES, Bill -> Bill Gates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com