#!/bin/bash
string="name: MAIN_ROLE
description: ROLE DESCRIPTION
readOnly:
roleReferences:
- roleTemplateAppId: app1
roleTemplateName: template1
name: Name1
- roleTemplateAppId: app2
roleTemplateName: template2
name: Name2
"
awk 'NR==1{ # When on Line 1
a=$2;cnt=0 # Set a and cnt vars
}
/^-/{ # When line starts with -
rta[cnt]=$3; getline; # Add role template app ID to rta array
rtn[cnt]=$2; getline; # Add role template name to rtn array
n[cnt]=$2;cnt++ # Add name to n array
}
END{ # When the file processing is over
for(i=0;i<cnt;i++) { # Iterate over the found values and...
print a","n[i]","rtn[i]","rta[i] # print them
}
}' <<< "$string"
# => MAIN_ROLE,Name1,template1,app1
# MAIN_ROLE,Name2,template2,app2
IyEvYmluL2Jhc2gKc3RyaW5nPSJuYW1lOiBNQUlOX1JPTEUKZGVzY3JpcHRpb246IFJPTEUgREVTQ1JJUFRJT04KcmVhZE9ubHk6CnJvbGVSZWZlcmVuY2VzOgotIHJvbGVUZW1wbGF0ZUFwcElkOiBhcHAxCiAgcm9sZVRlbXBsYXRlTmFtZTogdGVtcGxhdGUxCiAgbmFtZTogTmFtZTEKLSByb2xlVGVtcGxhdGVBcHBJZDogYXBwMgogIHJvbGVUZW1wbGF0ZU5hbWU6IHRlbXBsYXRlMgogIG5hbWU6IE5hbWUyCiIKYXdrICdOUj09MXsgICAgICAgICAgICAgICAjIFdoZW4gb24gTGluZSAxCiAgICBhPSQyO2NudD0wICAgICAgICAgICAgIyBTZXQgYSBhbmQgY250IHZhcnMKfQovXi0veyAgICAgICAgICAgICAgICAgICAgICMgV2hlbiBsaW5lIHN0YXJ0cyB3aXRoIC0KICAgIHJ0YVtjbnRdPSQzOyBnZXRsaW5lOyAjIEFkZCByb2xlIHRlbXBsYXRlIGFwcCBJRCB0byBydGEgYXJyYXkKICAgIHJ0bltjbnRdPSQyOyBnZXRsaW5lOyAjIEFkZCByb2xlIHRlbXBsYXRlIG5hbWUgdG8gcnRuIGFycmF5CiAgICBuW2NudF09JDI7Y250KysgICAgICAgIyBBZGQgbmFtZSB0byBuIGFycmF5Cn0KRU5EeyAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gdGhlIGZpbGUgcHJvY2Vzc2luZyBpcyBvdmVyCiAgICBmb3IoaT0wO2k8Y250O2krKykgeyAgIyBJdGVyYXRlIG92ZXIgdGhlIGZvdW5kIHZhbHVlcyBhbmQuLi4gCiAgICAgICAgcHJpbnQgYSIsIm5baV0iLCJydG5baV0iLCJydGFbaV0gICMgcHJpbnQgdGhlbQogICAgfQp9JyA8PDwgIiRzdHJpbmciCgojID0+IE1BSU5fUk9MRSxOYW1lMSx0ZW1wbGF0ZTEsYXBwMQojICAgIE1BSU5fUk9MRSxOYW1lMix0ZW1wbGF0ZTIsYXBwMg==