2

我有文件 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

请帮忙怎么办?

4

2 回答 2

1

我想你想要的是这样的:

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

基本上单 qouting 将字符串带到 sed 并跳过错误的 shell。您希望外壳程序解释变量,这就是我所做的。如果你碰巧有 sed 的 gnu 版本。然后你可以做

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

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

sed 's/AMOUNTTOBEREPLACED/'$sum'/g'  File1.txt >> temp
mv temp FileNew.txt
于 2012-12-27T10:10:26.550 回答
0

请改用以下 sed 命令:

sed -e "s/AMOUNTTOBEREPLACED/\"${sum}\"/g"
于 2012-12-27T10:19:47.033 回答