linux - 如何使用 sed 将文本替换为 ":"

标签 linux unix awk 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 中获得新值,但没有反射(reflect)任何更改。

最佳答案

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

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

关于linux - 如何使用 sed 将文本替换为 ":",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27941797/

相关文章:

c# - 如何在 C# 中清除 errno?

c - 符号文件命令适用于较旧的 gdb 但不适用于较新的 gdb

html - Linux - 传输文件和创建文件的区别 - 权限

linux - NGINX dns 不适用于 VPS

java - 一旦用户以 Unix 用户身份登录,就可以绕过数据库的密码身份验证吗?

shell - 在 linux bourne shell : How to count the occurrences of a specific word in a file

Unix 排序字母数字字符与 ':' 、 '/' 组合的键

linux - 八个字符的模式识别

linux - 在 shell 中追加两个文件的输出?

arrays - 为什么 AWK 不将此数组索引视为数字,除非我使用 int()?