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 に答える