Create XML with awk command with text file

I have a text file with following data, need to convert it into xml with awk command in shell script.

Package1,class1 Package1,class2 Package2,Page1 Package2,Page2 

This text file need to be converted into xml as shown in below format.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata">     <types>         <members>class1</members>         <members>class2</members>         <name>Package1</name>     </types>     <types>         <members>Page1</members>         <members>Page2</members>         <name>Package2</name>     </types> <version>48.0</version> </Package> 

i am new to shell script. please help me out….

Add Comment
1 Answer(s)

this should get you started

$  awk -F, 'function wrap(t,v) {return "<"t">"v"</"t">"}             function rec()     {return wrap("types", members ORS wrap("name",$1) ORS)}                             p && p!=$1 {print rec(); members=""}                             {p=$1; members=members ORS wrap("member",$2)}              END        {print rec()}' file  <types> <member>class1</member> <member>class2</member> <name>Package2</name> </types> <types> <member>Page1</member> <member>Page2</member> <name>Package2</name> </types> 

build up the record until the name changes and print.

Answered on July 16, 2020.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.