如何使用 sed 将文本替换为“:”

How to replace a text with ":" using sed

我正在尝试借助 sed 替换文本,但我真的很困惑如何找到失败的原因。

    Main file
    ===========
    user@shell>cat test
    new=21:58:22
    old=09:58:22

    echo $new
    echo $old

    user@shell>sed -i 's/$old/$new/g' yoo
    user@shell>
    user@shell>
    desired output
    ==============
    user@shell>cat yoo
    09:58:22
    09:58:22
    09:58:2209:58:22
    09:58:2209:58:22
    asdasd
    user@shell>

在此之后,我假设我将在文件 yoo 中获取新值,但没有反映任何变化。

您需要像这样使用双引号扩展变量,

sed -i "s/$old/$new/g" yoo