【发布时间】:2021-05-12 12:08:48
【问题描述】:
我正在尝试找到一种方法来在一个回显中大写和替换字符串的破折号。我无法使用多行来重新分配字符串值。
例如:
string='test-e2e-uber' 需要 echo $string 作为 TEST_E2E_UBER
我目前可以通过利用来做一个或另一个
${string^^} 大写
${string//-/_} 替换
但是,当我尝试组合它们时,它似乎不起作用(替换错误)。 是否有正确的语法来实现这一点?
echo ${string^^//-/_}
【问题讨论】:
-
我看到过有关同时进行两次替换的问题,答案是否定的,这是不可能的。所以恐怕
^^和//.../...的组合也行不通。只需通过中间分配分两步完成。 -
您可以考虑分两步进行:
string=${string^^}; string=${string//-/_} -
如果通过
tr管道是一个选项,您可以使用echo "$string" | tr '[:lower:]-' '[:upper:]_' -
@Balry: 字符串
abüßà应该如何翻译?还是包含法语双声 æ 的字符串?
标签: string bash shell replace uppercase