通过 Perl 更改文件名
Change file names by Perl
如何将文件名从这样的表示法:SomeCodeFile.extension
更改为 C/C++ 表示法:some_code_file.extension
。我想使用 Perl + Find + Regex 来打印这些名称。
您可以使用正则表达式:
perl -e 'for $f (@ARGV) {
($n = $f) =~ s/(?<=.)([[:upper:]])/_\l/g;
rename $f, lcfirst $n;
}' SomeCodeFiles*
[[:upper:]]
匹配大写字母。
(?<=.)
是断言背后的观察,即字母前面有一些东西(我们不想要 _some_code_file.ext
)
\l
将后面的字母改为小写(类似于 lcfirst
)
请注意,在某些情况下结果可能会令人不快 (x_m_l2_j_s_o_n.c
、u_r_l__validator.cpp
)。
如何将文件名从这样的表示法:SomeCodeFile.extension
更改为 C/C++ 表示法:some_code_file.extension
。我想使用 Perl + Find + Regex 来打印这些名称。
您可以使用正则表达式:
perl -e 'for $f (@ARGV) {
($n = $f) =~ s/(?<=.)([[:upper:]])/_\l/g;
rename $f, lcfirst $n;
}' SomeCodeFiles*
[[:upper:]]
匹配大写字母。(?<=.)
是断言背后的观察,即字母前面有一些东西(我们不想要_some_code_file.ext
)\l
将后面的字母改为小写(类似于lcfirst
)
请注意,在某些情况下结果可能会令人不快 (x_m_l2_j_s_o_n.c
、u_r_l__validator.cpp
)。