1行でドル記号と一致する中括弧を複数回削除します。

1行でドル記号と一致する中括弧を複数回削除します。

ファイルの元の行:

alarm_name = "${var.environment}-${var.deployment}-${var.service_name}-elb-healthyhosts"

${}、、${}なしでこの行が欲しいです${}

alarm_name = "var.environment-var.deployment-var.service_name-elb-healthyhosts"

次のようにsed:最初${と最後を削除します}

sed s'/\${\(.*\)}/\1/' filename

ペアでキャリブレータを削除するには?

ベストアンサー1

私は使用します

sed -E 's/\$\{([^}]+)\}/\1/g'

デモ:

$ line='alarm_name = "${var.environment}-${var.deployment}-${var.service_name}-elb-healthyhosts"'
$ sed -E 's/\$\{([^}]+)\}/\1/g' <<<"$line"
alarm_name = "var.environment-var.deployment-var.service_name-elb-healthyhosts"

おすすめ記事