如何将文件名从以下符号更改为:SomeCodeFile.extension
到C / C ++表示法:some_code_file.extension
。我想使用Perl + Find + Regex打印这些名称。
答案 0 :(得分:2)
您可以使用正则表达式:
perl -e 'for $f (@ARGV) {
($n = $f) =~ s/(?<=.)([[:upper:]])/_\l$1/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
),结果可能会令人不愉快。