任何人都可以帮助编写shell脚本以满足以下要求。
我有一个CSV文件,如下所示,采用逗号分隔格式
A,B,C
D,E,F
还有另一个文件,其中的值如下所述: -
Ramesh
Suresh
在上述两个文件的帮助下,我需要构建新文件。
<root>
<env name="A" domain="B">
<component name="Ramesh">
<machine name="C">Ramesh</machine>
</component>
<component name="Suresh">
<machine name="C">Suresh</machine>
</component>
</env>
<env name="D" domain="E">
<component name="Ramesh">
<machine name="F">Ramesh</machine>
</component>
<component name="Suresh">
<machine name="F">Suresh</machine>
</component>
</env>
</root>
答案 0 :(得分:0)
试试这个;
#!/bin/bash
echo "<root>"
while read csvLine; do
echo $csvLine | awk -F ',' '{print "<env name=\""$1 "\" domain=\"" $2"\">"}'
csvcol3=$(echo $csvLine |awk -F ',' '{print $3}')
while read secondFileLine; do
echo -e '\t<component name="'$secondFileLine'">'
echo -e '\t\t<machine name="'$csvcol3'">'$secondFileLine'</machine>'
echo -e '\t</component>'
done < SecondFile.txt
echo '</env>'
done < file.CSV
echo "</root>"