Я пытаюсь извлечь целую кучу xml с помощью awk из переменной, которая включает csv.Извлечение xml из csv
Я получаю файл 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. Я бы хотел, чтобы двойные двойные кавычки заменялись только на одну двойную кавычку (вместо format = "" strict "" => format = "strict")
На данный момент у меня есть следующее, но оно не заменяет двойной 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