sed命令采取变量

时间:2012-12-27 09:55:42

标签: shell unix sed aix

我有文件File1.txt,我必须使用sed命令替换文本

File1.txt内容

EURAMOUNTTOBEREPLACED

我有一个用于替换文本AMOUNTTOBEREPLACED

的AIX shell脚本

shell脚本的内容

sum=27
sed 's/AMOUNTTOBEREPLACED/"$sum"/g'  File1.txt >> temp
mv temp FileNew.txt

执行脚本后,FileNew.txt的内容如下

EUR"$sum"

但是预期的输出应该是

EUR27

请帮忙怎么做?

2 个答案:

答案 0 :(得分:1)

我认为你想要的是这样的:

sed 's/AMOUNTTOBEREPLACED/'$sum'/g' File1.txt >> temp

基本上单个qouting将字符串转换为sed并跳过shell,这是错误的。你希望shell解释变量,这就是我所做的。如果你恰好有sen的gnu版本。然后就可以了

sed -i 's/AMOUNTTOBEREPLACED/'$sum'/g' File1.txt

将您的代码中的这两个语句压缩为上面的一个:

sed 's/AMOUNTTOBEREPLACED/'$sum'/g'  File1.txt >> temp
mv temp FileNew.txt

答案 1 :(得分:0)

使用下面的sed命令:

sed -e "s/AMOUNTTOBEREPLACED/\"${sum}\"/g"