【问题标题】:How to replace a text with ":" using sed [duplicate]如何使用 sed 用“:”替换文本 [重复]
【发布时间】:2015-01-14 19:31:58
【问题描述】:

我正在尝试在 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
  • Shell 变量不扩展为单引号。
  • 谢谢..效果很好。应该在问之前尝试过

标签: linux unix awk sed


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 2011-11-25
    • 1970-01-01
    • 2014-12-22
    • 2021-09-25
    • 2020-01-19
    • 2013-11-01
    • 2022-11-14
    相关资源
    最近更新 更多