gpt4 book ai didi

bash - 变量名扩展多重替换

转载 作者:行者123 更新时间:2023-12-03 09:18:09 29 4
gpt4 key购买 nike

我想知道如何用变量扩展替换多个模式。

VAR=A_B_C_D_E

我想要的结果是 A_C_E 而不使用临时变量。

RESULT_TMP=${VAR/_B/}
RESULT=${RESULT_TMP/_D/}

我做了一些这样的尝试:

${${VAR/_B/}/_D/}

没有任何成功。

有什么想法吗?

最佳答案

您可以在 BASH 字符串替换中使用此 glob 模式:

s='A_B_C_D_E'
echo "${s//_[BD]/}"
A_C_E

_[BD] 将匹配 _B_D// 将进行全局替换。


编辑:关于其他问题:

but in case where B and D are strings: A_FOO_C_BAR_E

在这种情况下,您可以使用extglob:

shopt -s extglob

s=`A_FOO_C_BAR_E`
echo "${s//_@(FOO|BAR)/}"
A_C_E

关于bash - 变量名扩展多重替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582385/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com