如何使用sed的/ $ var / $ var2'文件

时间:2017-05-30 17:09:17

标签: linux bash shell sed sh

我正在尝试将显示为变量的值替换为另一个显示为第二个变量的值,使用以下行:

    sed -i "s/$header/$new/" file.f

其中“$ header”是旧的变量,我想用新的变量替换($ new)。

我收到了这个错误:

    sed: -e expression #1, char 20: unknown option to `s'

我试过

    sed -i 's/$header/$new/' file.f
    sed -i "s/$header/$new/" file.f
    sed -i 's/"$header"/"$new"/' file.f

似乎没有任何效果。 我应该怎么写这一行,这样才能得到正确的输出(用文件中的'$ new'替换'$ header')?

提前致谢

2 个答案:

答案 0 :(得分:0)

sed -i "s/$old/$new/" file

工作正常。如果您的数据包含字符/.

,则可以更改separtor
sed -i "s@$old@$new@" file

答案 1 :(得分:0)

如果您不确定变量的内容并减少与分隔符的冲突,可以使用

sed "s^A$old^A$new^A"

输入CTRL-ACTRL-V + CTRL-A(或在vars中不期望的任何其他值)