bash - bash - 破折号案例到骆驼案例
问题描述
我写了以下内容来转换foo-bar-baz
类似FooBarBaz
sed -r 's/^(.)|-(.)/\U\1\U\2/g'
(以上内容如有错误欢迎指正)
但是,它不适用于busybox :(
cut
我可以用、for
循环、 bash 子字符串和来拼凑一些东西tr
,但是必须有一个很好的使用 sed、awk 等的busybox版本的衬里。想法?
解决方案
考虑到您的实际 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
,FS
和ORS
inawk
。
echo "foo-bar-baz" |
awk 'BEGIN{FS="";RS="-";ORS=""} {$0=toupper(substr($0,1,1)) substr($0,2)} 1'
推荐阅读
- javascript - 为什么 match() 即使匹配数据也不起作用
- forms - 子表单总是排在记录集中的第一个 - 我需要最后一个
- swift - RealityKit – Anchor 忽略父锚转换
- rdf - 使用 OWL 本体通过推理进行类传播
- java - 当我测试我的项目时,Spring Boot 中的 Whitelabel 错误页面
- php - AWS EC2 Wordpress - 未启用 gd 模块
- blockchain - 如何使用 HardHat 调用应付账款 Solidity 函数?
- node.js - 这是分割视频的正确方法吗?
- python - 如果使用 numpy 在 rgb 图像数组中低于某个值,则将值设置为零
- nodatime - 分区日期时间和即时之间的 Noda 时间比较