macos - 如何在 OSX 中使用 sed 将每个单词的首字母大写

标签 macos bash sed pipe capitalization

我尝试使用以下 sed 命令将字符串中每个单词的首字母大写,但它不起作用:

 echo "my string" | sed 's/\b\(.\)/\u\1/g'

输出:

 my string

我做错了什么?

谢谢

最佳答案

鉴于您的示例输入,这将适用于任何 awk:

$ echo 'my string' | awk '{for (i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)} 1'
My String

如果这不能满足您的真正需求,那么编辑您的问题以显示一些更具代表性的示例输入和预期输出。

关于macos - 如何在 OSX 中使用 sed 将每个单词的首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968793/

相关文章:

linux - 使用 linux 将字符串 dd mm yyyy 转换为 yyyymmdd

linux - 用 sed 删除字符串的组合

linux - 使用 ?用 sed

c - Mac OS X 上的标准 C 库在哪里?

java - Spark 错误 - 不支持的类文件主要版本

macos - Qt + CMake for OSX bundle : Cocoa Platform Plugin

objective-c - 订阅(或列出)所有应用程序分发的通知

bash - 为每行 shell 添加前缀

从 Bash 调用的 Python 脚本不执行任何操作

LINUX:列出所有目录,插入 bash 数组