fork(1) download
  1. #!/bin/bash
  2. string="name: MAIN_ROLE
  3. description: ROLE DESCRIPTION
  4. readOnly:
  5. roleReferences:
  6. - roleTemplateAppId: app1 extra1
  7. roleTemplateName: template1 extra1
  8. name: Name1 extra1
  9. - roleTemplateAppId: app2 extra2
  10. roleTemplateName: template2 extra2
  11. name: Name2 extra2
  12. "
  13.  
  14. awk -F':[[:space:]]+' 'NR==1{ # When on Line 1
  15. a=$2;cnt=0 # Set a and cnt vars
  16. }
  17. /^-/{ # When line starts with -
  18. rta[cnt]=$2; getline; # Add role template app ID to rta array
  19. rtn[cnt]=$2; getline; # Add role template name to rtn array
  20. n[cnt]=$2;cnt++ # Add name to n array
  21. }
  22. END{ # When the file processing is over
  23. for(i=0;i<cnt;i++) { # Iterate over the found values and...
  24. print a","n[i]","rtn[i]","rta[i] # print them
  25. }
  26. }' <<< "$string"
  27.  
  28. # => MAIN_ROLE,Name1,template1,app1
  29. # MAIN_ROLE,Name2,template2,app2
Success #stdin #stdout 0.01s 5512KB
stdin
Standard input is empty
stdout
MAIN_ROLE,Name1  extra1,template1 extra1,app1 extra1
MAIN_ROLE,Name2 extra2,template2 extra2,app2 extra2