我正在与另一位开发人员合并工作。我正在使用 UpperCamelCasing,但我们决定遵循Google 的 HTML 样式指南,使用小写字母并用连字符分隔单词。这个决定要求我重命名文件系统上的一些文件。我首先认为这很容易,因为我经常使用 bash 来重命名大量文件。不幸的是,在 Casing 样式上重命名似乎有点复杂,我没有设法找到一种方法。
我可以使用 Bash 将文件从一种命名约定转换为另一种命名约定吗?
尝试使用rename带有-f选项的命令以所需的替换重命名文件。
rename -f 's/([a-z])([A-Z])/$1-$2/g; y/A-Z/a-z/' <list_of_files>
Run Code Online (Sandbox Code Playgroud)
如果您还想<list_of_files>使用某种模式进行提取,例如 extension .ext,则需要find与上述命令结合使用xargs
find -type f -name "*.ext" -print0 | xargs -0 rename -f 's/([a-z])([A-Z])/$1-$2/g; y/A-Z/a-z/'
Run Code Online (Sandbox Code Playgroud)
例如,如果您想重命名所有文件 pwd
$ ls
dash-case
lowerCamelCase
UpperCamelCase
$ rename -f 's/([a-z])([A-Z])/$1-$2/g; y/A-Z/a-z/' *
$ ls
dash-case
lower-camel-case
upper-camel-case
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2836 次 |
| 最近记录: |