shell:使用sed替换文件中的字符串

时间:2014-07-30 09:35:53

标签: linux shell replace

我正在编写一个脚本来替换linux中的文件中的字符串。

这是我的代码:

echo "Enter file name? "
read FILE1
echo "You have entered, $FILE1"

echo "String to be replaced "
read STR1
echo "You have entered, $STR1"

echo "Replace by "
read STR2
echo "You have entered, $STR2"

sed -i 's/$STR1/$STR2/g' /misc/home3/abc/$FILE1

echo "DONE !!"

字符串未在文件中替换。 它可能有什么问题?

谢谢:)

1 个答案:

答案 0 :(得分:1)

不要将'用于sed-string,而是",如下所示:

sed -i "s/$STR1/$STR2/g" /misc/home3/abc/$FILE1

双引号允许shell在引用文本内部进行变量扩展。单一勾选'可以防止这种情况发生。