1. ホーム
  2. unix

[解決済み] シェルスクリプト内の文字列を変数で置換する

2022-05-16 22:36:47

質問

シェルスクリプトの中で文字列を置き換えるために、以下のコードを使用しています。 シェルスクリプトの内部で文字列を置き換えるために以下のコードを使用しています。

echo $LINE | sed -e 's/12345678/"$replace"/g'

に置き換わっていますが $replace に置き換えられています。

何が間違っていたのか、誰か教えてください。

どのように解決するのですか?

もし、あなたが $replace を解釈したい場合は、変数の置換を妨げるので、シングルクォートを使うべきではありません。

試してみてください。

echo $LINE | sed -e "s/12345678/${replace}/g"

トランスクリプト

pax> export replace=987654321
pax> echo X123456789X | sed "s/123456789/${replace}/"
X987654321X
pax> _

ただ、注意してほしいのは ${replace} に重要な文字がないことを確認してください。 sed のように)、エスケープしない限り混乱を招くからです。しかし、あなたが言うように、ある数字を別の数字に置き換えるのであれば、それは問題にはならないでしょう。