#!/bin/bash
s='"example1_policy" {
name="example"
policy=jsonencode(
{
Statement=[
{
Action=[
s3:*
]
Effect="Allow"
},
]
Version="2012-10-17"
}
)
}
"example2_policy" {
name="example2"
policy=jsonencode(
{
Statement=[
{
Action=[
s3:*
]
Effect="Allow"
},
]
Version="2012-10-17"
}
)
}
"example3_policy" {
name="example3"
policy=jsonencode(
{
Statement=[
{
Action=[
s3:*
]
Effect="Allow"
},
]
Version="2012-10-17"
}
)
}'
perl -0777 -pe 's/^(\h*policy=)[^()]*(\((?:[^()]++|(?2))*\))/$1<placehlder>/gm' <<< "$s"
IyEvYmluL2Jhc2gKcz0nImV4YW1wbGUxX3BvbGljeSIgewogICAgbmFtZT0iZXhhbXBsZSIKICAgIHBvbGljeT1qc29uZW5jb2RlKAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVtZW50PVsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb249WwogICAgICAgICAgICAgICAgICAgICAgICBzMzoqCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIEVmZmVjdD0iQWxsb3ciCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdCiAgICAgICAgICAgIFZlcnNpb249IjIwMTItMTAtMTciCiAgICAgICAgfQogICAgKQp9CiJleGFtcGxlMl9wb2xpY3kiIHsKICAgIG5hbWU9ImV4YW1wbGUyIgogICAgcG9saWN5PWpzb25lbmNvZGUoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZW1lbnQ9WwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFjdGlvbj1bCiAgICAgICAgICAgICAgICAgICAgICAgIHMzOioKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgRWZmZWN0PSJBbGxvdyIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0KICAgICAgICAgICAgVmVyc2lvbj0iMjAxMi0xMC0xNyIKICAgICAgICB9CiAgICApCn0KImV4YW1wbGUzX3BvbGljeSIgewogICAgbmFtZT0iZXhhbXBsZTMiCiAgICBwb2xpY3k9anNvbmVuY29kZSgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlbWVudD1bCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uPVsKICAgICAgICAgICAgICAgICAgICAgICAgczM6KgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICBFZmZlY3Q9IkFsbG93IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXQogICAgICAgICAgICBWZXJzaW9uPSIyMDEyLTEwLTE3IgogICAgICAgIH0KICAgICkKfScKcGVybCAtMDc3NyAtcGUgJ3MvXihcaCpwb2xpY3k9KVteKCldKihcKCg/OlteKCldKyt8KD8yKSkqXCkpLyQxPHBsYWNlaGxkZXI+L2dtJyA8PDwgIiRzIgo=