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….
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.