Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/08/2012, à 17:32

ourobolos

bash sed, gpx vers csv

Bonjour,

J'ai un fichier gpx que je voudrais transformer en csv de la forme :

lat  lon  ele  time hdop

Le gpx est de la forme

<trkpt lat="45.198013995575984" lon="5.731368709556624">
	<ele>274.0</ele>
	<time>2012-08-16T08:01:19Z</time>
	<hdop>12.5</hdop>
</trkpt>

J'avais commencé après une recherche sur le forum par ceci :

sed -n 's#.*<\(ele\)>\([^<]\+\)</\1>.*#\2#p'  $1 >ele

sed -n 's#.*<\(time\)>\([^<]\+\)</\1>.*#\2#p' $1 >time

sed -n 's#.*<\(hdop\)>\([^<]\+\)</\1>.*#\2#p' $1 >hdop

sauf qu'après avoir séparé ces variables en fichiers, il fallait encore les rassembler à nouveau, sans compter que je n'avais pas encore trouvé la bonne ligne pour lat et lon ; et qu'il doit certainement exister plus astucieux pour faire ce que je cherche.

edit : mauvaise section je pense, ça irai mieux dans « Terminal, scripts et ligne de commande » non ?

Dernière modification par ourobolos (Le 18/08/2012, à 18:11)

Hors ligne

#2 Le 18/08/2012, à 21:04

pingouinux

Re : bash sed, gpx vers csv

Bonjour,
Pour info, les valeurs trouvées peuvent être mises dans des variables :

ele=$(sed -n 's#.*<\(ele\)>\([^<]\+\)</\1>.*#\2#p'  $1)
time=$(sed -n 's#.*<\(time\)>\([^<]\+\)</\1>.*#\2#p' $1)
hdop=$(sed -n 's#.*<\(hdop\)>\([^<]\+\)</\1>.*#\2#p' $1)
lat=$(sed -n 's#.*\blat="\([^"]\+\)".*#\1#p' $1)
lon=$(sed -n 's#.*\blon="\([^"]\+\)".*#\1#p' $1)

Hors ligne

#3 Le 19/08/2012, à 14:21

ourobolos

Re : bash sed, gpx vers csv

merci, je m'en suis sorti avec paste pour remettre mes colonnes dans ne même fichier

Hors ligne

#4 Le 19/08/2012, à 22:11

Watael

Re : bash sed, gpx vers csv

salut,

voici un tatonnement en sed

sed -n 'N;N;N;s/\n//g;s/[^"]*"//; s/"[^"]*"/ /; s/">[^>]*>/ /; s/<[^>]*>[[:blank:]]*/ /g;p' fichier.gpx
45.198013995575984 5.731368709556624 274.0  2012-08-16T08:01:19Z  12.5 

Connected \o/
Welcome to sHell. · eval is evil.

En ligne