2012-12-27 104 views
2

我有文件FILE1.TXT在我所使用sed命令sed命令采取可变

FILE1.TXT内容

EURAMOUNTTOBEREPLACED 

我有一个AIX外壳脚本​​用于替换要替换的文本文字AMOUNTTOBEREPLACED

shell脚本

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

的内容执行SCR后IPT,FileNew.txt的内容是如下

EUR"$sum" 

但预期的输出应该是

EUR27 

请帮忙怎么办?

回答

0

使用下面的sed命令:

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

'sed“s/AMOUNTTOBEREPLACED/$ sum/g”'也可以 – aragaer

1

我想你想的一个是这样的:

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

基本上单qouting带给sed的字符串,并跳过壳这是不对的。你希望shell能够解释变量,这就是我所做的。更进一步的,如果你碰巧有gnu版本的sed。然后,你可以做

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

这上面压缩这两个语句在代码之一:

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

现在输出的是欧元“$总和“ – user1929905

+0

@ user1929905我纠正了双qoute。 Incoginto在他的回答中也解释道。 –