如何使用bash脚本将完全限定的类名转换为标题大小写?
我需要转换这样的东西
androidx.arch.core.executor.AppToolkitTaskExecutor
对此
Androidx.Arch.Core.Executor.AppToolkitTaskExecutor
我知道这sed可能对我有帮助,但我不够熟练,无法构建正确的命令。
回答
纯 Bash 解决方案:
#!/usr/bin/env bash
class=androidx.arch.core.executor.AppToolkitTaskExecutor
IFS=.
# Split Fully Qualified class path elements into array using dot delimiter
read -r -a class_array <<<"$class"
# Join the class_array's capitalized class path elements using the dot delimiter
printf -v title_class '%s' "${class_array[*]^}"
# Printout the original Fully Qualified Class Name
# and its matching Title Case Class Name
printf 'FQCN: %snTCCN: %sn' "$class" "$title_class"
输出:
FQCN: androidx.arch.core.executor.AppToolkitTaskExecutor
TCCN: Androidx.Arch.Core.Executor.AppToolkitTaskExecutor
具有功能的替代方法:
#!/usr/bin/env bash
class2Title () {
IFS=.
set -- $@
echo "${*^}"
}
class2Title net.example.bar.Foo
输出:
Net.Example.Bar.Foo