【问题标题】:How I can change string by mask in bash scripts?如何在 bash 脚本中通过掩码更改字符串?
【发布时间】:2015-07-20 08:23:43
【问题描述】:

如何通过掩码将字符串更改为另一个字符串? 我想看到类似这样的代码:

if [ "$PANEL_SOURCE_COMPONENT_NAME" == "something-*"]; then
                    COMPONENTO_NAME="newline-*"
else
                    COMPONENTO_NAME="$PANEL_SOURCE_COMPONENT_NAME"
fi

当然,此代码不起作用。我怎么能做类似的事情? 谢谢。

【问题讨论】:

  • 我不太理解你的问题,但如果你想要避免在你的字符串中使用 $,你可以写:'$PANEL_SOURCE_COMPONENT_NAME'"\$PANEL_SOURCE_COMPONENT_NAME"
  • @juanmajmjr,我想更改从“something-”开始的变量,并在其中包含另一个开头 -“newline-”。例如,如果变量是“something-ololol-9”,我想在那里看到“newline-ololo-9”

标签: linux bash shell


【解决方案1】:

试试这样的:

if [[ "$PANEL_SOURCE_COMPONENT_NAME" = "something-"* ]]; then
    COMPONENTO_NAME="$(echo "$PANEL_SOURCE_COMPONENT_NAME" | sed 's/something-\([a-zA-Z0-9_-]\)/newline-\1/g')"
else
    COMPONENTO_NAME="$PANEL_SOURCE_COMPONENT_NAME"
fi

例如:

[~]$ TEST=something-that-is-long
[~]$ echo "$TEST" | sed 's/something-\([a-zA-Z0-9_]\)/newline-\1/g'
newline-that-is-long
[~]$

请注意,* 必须放在引号之外,以便 Bash 进行全局匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 2014-09-16
    • 2011-07-10
    • 1970-01-01
    • 2023-04-11
    • 2020-11-12
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多