Создайте XML с помощью команды awk с текстовым файлом - PullRequest
0 голосов
/ 10 июля 2020

У меня есть текстовый файл со следующими данными, мне нужно преобразовать его в xml с помощью команды awk в сценарии оболочки.

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

Этот текстовый файл необходимо преобразовать в xml, как показано на ниже формат.

<?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>

Я новичок в сценарии оболочки. пожалуйста, помогите мне ....

1 Ответ

0 голосов
/ 11 июля 2020

это должно помочь вам начать

$  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>

создать запись до тех пор, пока имя не изменится, и напечатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...