我嘗試從包含csv的變量中使用awk提取一大堆xml。從csv提取xml
我從吐下了一個Web服務得到CSV:
2;1;"<?xml version=""1.0"" encoding=""UTF-8""?>
<project name=""ETLTasks"" version=""6.0"" modified=""1479827853273"" modifiedBy=""admin"" format=""strict"" olapId=""p0"">
<headers>
<header name=""comment"" modified=""1394702840960"" modifiedBy="""">
<comment><![CDATA[Automated tasks for OLAP Server:
- CubeCopy
- CubeRulesCalc]]></comment>
</header>
</headers>
</project>
";
我嘗試使用awk來提取XML。我希望雙引號只用一個雙引號替代(而不是格式=「」strict「」=> format =「strict」)
現在我有以下但它不能代替double doubel行情的希望:
etlDefinitionClean=`echo -n "$etlDefinition" | cut -d";" -f3`
etlDefClean="${etlDefinitionClean%\"}"
etlDefClean="${etlDefClean#\"}"
awk -F "\"*;\"*" '{ gsub(/\"\"/, "\"", $2) } {print $2}' "$etlDefClean" > "$fileOut"
什麼,我想在年底實現如下:
<project name="ETLTasks" version="6.0" modified="1479827853273" modifiedBy="admin" format="strict" olapId="p0">
<headers>
<header name="comment" modified="1394702840960" modifiedBy="">
<comment><![CDATA[Automated tasks for OLAP Server:
- CubeCopy
- CubeRulesCalc]]></comment>
</header>
</headers>
</project>
也放到了一個文件
刪除多個雙引號,只要說'tr -s'''
fedorqui
增加了我試圖實現的功能,我想提取整個xml代碼,而不是它的一部分 – laloune
所以你只是想清除你通過刪除雙引號得到的字符串的xml部分?另外,'2 ; 1;「'在開始?它們是不變的? – fedorqui