【问题标题】:How to search and replace a value corresponding to a string in a file via sed如何通过sed搜索和替换文件中字符串对应的值
【发布时间】:2019-07-29 20:31:25
【问题描述】:

我有一个变量,我想将它附加到我在文件中搜索的字符串中。我想更新我从中获得的价值。变量是:

# foo=$(echo "$(hostname)" | awk -F '-' '{print $NF}')
# echo $foo
spsns

现在我搜索的字符串是:

# grep "unifiedlogging.host" /opt/tpa/confd/asr.jvm.opt.d/templates/jvm.opt.tmpl
-Dunifiedlogging.host={{$myHost}}

现在;我想替换我得到的值,即 {{$myHost}} 到 {{$myHost}}-$foo 并在文件本身上更新它。我试着用 sed 做,但不知道。请问有什么帮助吗?

【问题讨论】:

    标签: shell awk sed scripting


    【解决方案1】:

    你可以用这个sed:

    sed -i.bak '/unifiedlogging\.host/ s/{{\$myHost}}/&-'"$foo"'/' file
    

    【讨论】:

    • 你不用转义s//中的$吗?
    • 如果$ 不是最后一个字符,那么转义不是必须的。但我会尽量避免让读者感到困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2011-08-16
    • 2017-08-25
    • 2021-06-21
    • 2012-05-05
    • 1970-01-01
    相关资源
    最近更新 更多