为什么sed命令没有替换文本

时间:2015-10-07 22:49:12

标签: bash sed

更新了我的sed命令runnning的代码,但找到fname并替换为fname1的实际部分实际上并没有发生     3)

.images {
    float:left;
}
.images img {
    width:auto;
    height:auto;
    max-width:200px;
    max-height:200px;
}

1 个答案:

答案 0 :(得分:0)

简短回答:删除单引号。

将变量放在单引号中会使它们不会扩展到它们的值,而是使用引号中的文字值。

所以考虑a = 1:

echo '$a'

回声:$ a

,同时:

echo $a ${a} "$a"

回声:1 1 1

我认为引用是存在的,因为你可能试图用更常见的形式来做:

sed -i 's/'$fname'/'$fname1'/g' stud

但你应该使用:

sed -i "s/$fname/$fname1/g" stud

保持简单,因为如果变量中有空格,命令不会失败,但是如果sed使用了另一个非字母数字字符,它可能会失败。

参考: http://tldp.org/LDP/abs/html/quotingvar.html