首页 > 解决方案 > bash - 破折号案例到骆驼案例

问题描述

我写了以下内容来转换foo-bar-baz类似FooBarBaz

sed -r 's/^(.)|-(.)/\U\1\U\2/g'

(以上内容如有错误欢迎指正)

但是,它不适用于busybox :(

cut我可以用、for循环、 bash 子字符串和来拼凑一些东西tr,但是必须有一个很好的使用 sed、awk 等的busybox版本的衬里。想法?

标签: bashawksedtrbusybox

解决方案


考虑到您的实际 Input_file(data) 与显示的示例相同,如果是,那么以下awk(s) 可能会对您有所帮助。

echo "foo-bar-baz" |
awk -F"-" '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1)) substr($i,2)}} 1' OFS=""

解决方案 2:使用RS,FSORSinawk

echo "foo-bar-baz" | 
awk 'BEGIN{FS="";RS="-";ORS=""} {$0=toupper(substr($0,1,1)) substr($0,2)} 1'

推荐阅读