Help to data re-arrangement problem

Input file

<data id>="1">\
</data>\
<data id>="2">\
</data>\
<code>="1" target="2">\
</code>\
<data id>="1">\
</data>\
<data id>="2">\
</data>\
<code>="1" target="2">\
</code>\
<data id>="1">\
</data>\
<data id>="2">\
</data>\
<code>="1" target="2">\
</code>\
.
.

Desired output result:

<data id>="1">\
</data>\
<data id>="2">\
</data>\
<code>="1" target="2">\
</code>\
<data id>="3">\
</data>\
<data id>="4">\
</data>\
<code>="3" target="4">\
</code>\
<data id>="5">\
</data>\
<data id>="6">\
</data>\
<code>="5" target="6">\
</code>\

My input file is only "1" and "2".
However, those "data id" and "code" in my desired output result should be descending order until end up the file.

Thanks for any advice.

perl -pe 's/(?<=<data id>=")\d+/++$i/e' INPUTFILE
1 Like

Hi,

Try next command:

$ perl -pe 's/(?<=<data id>=")\d+(?=">)/++$data_id/e ; s/\d+/++$code_target/ge if /^<code>=/ && /target=/' infile
<data id>="1">\
</data>\
<data id>="2">\
</data>\
<code>="1" target="2">\
</code>\
<data id>="3">\
</data>\
<data id>="4">\
</data>\
<code>="3" target="4">\
</code>\
<data id>="5">\
</data>\
<data id>="6">\
</data>\
<code>="5" target="6">\
</code>\

Regards,
Birei

1 Like