加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

macos – 在bash 3.2中大写字符串的最简单方法?

发布时间:2020-12-15 22:26:13 所属栏目:安全 来源:网络整理
导读:例如:var = dog和echo $var输出是dog.资本化$var预期输出狗. 试过多种方式,但只是没有得到预期的输出.一些尝试: echo $var | sed "s/[a-z][:upper:]//" #dogecho $var | sed "s/([a-z])/[:upper:]/" #dog 解决方法 如果这是一个选项,你可以使用Python:
例如:var = dog和echo $var输出是dog.资本化$var预期输出狗.

试过多种方式,但只是没有得到预期的输出.一些尝试:

echo $var | sed "s/[a-z]&;[:upper:]//"  #dog
echo $var | sed "s/([a-z])/[:upper:]/"  #dog

解决方法

如果这是一个选项,你可以使用Python:

在得到不同的人的意见后(感谢所有人),这似乎是一个很好的工作解决方案,符合@ PM2Ring提出的第一个字母的OP请求:

仅针对第一个角色提出的最佳解决方

bash-3.2$var="it's an ?yster's life"
bash-3.2$python -c "import sys;print sys.argv[1].decode('utf8').capitalize()" "$var"
It's an ?yster's life

以下解决方案尝试将字符串中所有单词首字母大写:

以下解决方案有一些缺点:

bash-3.2$python -c "print raw_input().decode('utf-8').title()" <<<"it's an ?yster's life" 
It'S An ?yster'S Life

使用变量的简单解决方案:

bash-3.2$var='dog is dog'
bash-3.2$python -c "print raw_input().decode('utf-8').title()" <<<"$var"
Dog Is Dog

从这个答案中的注释可以看出(感谢输入all),重要的是要注意使用它的局限性,特别是使用OSX本机Python语言2.7.

示例1 :(感谢@ john1024& @ dev-null)

引用问题.

使用处理以下字符串示例所需的引号的小修改

var="it's a dog's life"
bash-3.2$python -c "print '$var'.title()"
It'S A Dog'S Life

与我的解决方案不兼容的其他示例:var =“hello”’world”

例2 :(谢谢@ mklement0)

Unicode问题

bash-3.2$var='?yster'
bash-3.2$python -c "print '$var'.title()"
?Yster

请注意,它将第二个字母大写,这是第一个ascii字符,标题方法将按照Python2中的预期方式进行大写.

可以对解决方案进行以下修改以帮助解决unicode字符:

bash-3.2$var='?yster'
python -c "print '$var'.decode('utf-8').title()" 
?yster

最后,当从下面的讨论中将解决方案放在一起时,这就是它最终如何组合起来:

python -c "print raw_input().decode('utf-8').title()" <<<"it's an ?yster's life"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读