下划线到驼峰式

Phi*_*ide 4 sed

如何将下划线分隔的单词转换为“camelCase”?这是我正在尝试的:

echo "remote_available_packages" | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/'
Run Code Online (Sandbox Code Playgroud)

但它返回remoteAvailable_packages而不改变pin packages

Geo*_*sen 10

这样做(在 GNU sed 中):

echo "remote_available_packages" | sed -E 's/_(.)/\U\1/g'
Run Code Online (Sandbox Code Playgroud)

  • 你应该在 sed 中使用 `-E` 而不是 `-r`。它是 POSIX 标准选项,用于在 `sed` 中启用扩展正则表达式。`-r` 选项被一些版本的 `sed` 用来做同样的事情,现在只存在于遗留兼容性的原因。`-E` 是正确的、可移植的形式,适用于所有现代版本的 `sed`。`-E` 也被 `grep` 和其他程序用于相同的目的。 (2认同)