Extrai coordenadas de ponto do KML usando ferramentas shell

0
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>Test.kmz</name>
    <Placemark>
        <name>Test</name>
        <LookAt>
            <longitude>48.7893522149238</longitude>
            <latitude>35.11072013511394</latitude>
            <altitude>0</altitude>
            <heading>-0.1257146222858709</heading>
            <tilt>27.02159138599089</tilt>
            <range>804.546845381412</range>
            <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
        </LookAt>
        <styleUrl>#m_ylw-pushpin160</styleUrl>
        <Point>
            <gx:drawOrder>1</gx:drawOrder>
            <coordinates>48.78741496263481,35.11017636516465,0</coordinates>
        </Point>
    </Placemark>
</Document>
</kml>

Gostaria de extrair o 48.78741496263481,35.11017636516465 de um KML (mas em ordem inversa) como 35.11017636516465,48.78741496263481 . Esta é uma tarefa para sed ou awk?

Obrigado antecipadamente.

    
por Luis Paganini 30.07.2018 / 10:08

2 respostas

0

Usando o AWK:

awk -F '[>,]' '/coordinates/ {print $3","$2}' file
  • pesquise as coordenadas do padrão e imprima o terceiro campo e o segundo campo.
por 30.07.2018 / 10:37
0
awk -F"[<>]" '/longitude/{long=$3}/latitude/{print $3","long}' file.txt
    
por 30.07.2018 / 10:22