3

我在 txt 文件中有值

cc.cis.jms.Simulator.CAAMS=CAAM270:CAAM050

现在我想将以下值替换为

cc.cis.jms.Simulator.CAAMS=CAAM270:CAAM050:CAAM250

我试过这个:

SIMULATOR='CAAM270:CAAM050'
ADDEDCAAM="$SIMULATOR:CAAM250"
SACTUALVALUE='cc.cis.jms.Simulator.CAAMS='$SIMULATOR
SREPLACEVALUE='cc.cis.jms.Simulator.CAAMS='$ADDEDCAAM

sed -i 's|$SACTUALVALUE|$SREPLACEVALUE|g' $FILE >  /tmp/Bridger/CC_CISConfig.properties

CC_CISConfig.properties 文件在 /tmp/Bridger/ 路径中创建,但上面没有内容。

我也试过:

sed -i 's|$SACTUALVALUE|$SREPLACEVALUE|g' $FILE >  /tmp/Bridger/CC_CISConfig.properties.txt

但没有奏效。请帮助

4

1 回答 1

3

您必须使用"sed 表达式中的 bash 变量值来替换。

它应该是,

sed -i "s|$SACTUALVALUE|$SREPLACEVALUE|g" $FILE >  /tmp/Bridger/CC_CISConfig.properties

然后,您正在使用-i选项。它将更改原始文件中的修改。但是,您将 STDOUT 重定向到/tmp/Bridger/CC_CISConfig.properties. 在这种情况下,无需将任何内容写入文件。这就是为什么,你得到空文件。

1)如果你想创建一个新的更新文件,

sed "s|$SACTUALVALUE|$SREPLACEVALUE|g" $FILE >  /tmp/Bridger/CC_CISConfig.properties

2)如果你想在同一个(原始)文件中进行替换,

sed -i "s|$SACTUALVALUE|$SREPLACEVALUE|g" $FILE
于 2013-08-30T09:26:54.403 回答