2012-12-27 135 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在他的回答中也解釋道。 –