Contenu | Rechercher | Menus

Annonce

La nouvelle clé USB Ubuntu-fr est en prévente
Rendez-vous sur la boutique En Vente Libre

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 05/10/2018, à 17:44

Roger-Gabriel

Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Je cherche avec sed à fusionner 2 fichiers gpx pour en faire un seul.
Transformation du premier fichier GPX on supprime la fin du fichier :

sed '/<\/trkseg>/,/<\/gpx>/d' mon 1 fichier

Les \ permettent d'échapper les / des balise xml.
Transformation du deuxième fichier GPX on supprime la début du fichier :

sed '/<?xml/,/<trkseg>/d' mon 2 fichier

Je voudrais ajouter le résultat de la première commande à celui de la seconde afin de faire un fichier.
J'ai fait des recherches sur internet et je n'ai pas trouvé de réponses satisfaisantes.

Dernière modification par Roger-Gabriel (Le 24/04/2019, à 13:52)

Hors ligne

#2 Le 05/10/2018, à 18:36

pingouinux

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Bonjour,
Pour concaténer les deux fichiers modifiés en un seul :

commande_1 >fichier_resultat
commande_2 >>fichier_resultat

Hors ligne

#3 Le 05/10/2018, à 18:39

Watael

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

salut,

{ commande1; commande2;} > fichier

eval, c'est mal.

Hors ligne

#4 Le 05/10/2018, à 21:08

Roger-Gabriel

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Cela m'a l'air simple.
Je vais essayer demain matin.
Merci pour les réponses.

Hors ligne

#5 Le 06/10/2018, à 16:43

diesel83140

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Pour la version de Watael, attention de ne pas oublier le ";" avant l'accolade fermante.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#6 Le 08/10/2018, à 17:36

claudius01

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Bonsoir,

Sauf erreur de ma part, 2 fichiers Gpx (comme tout fichier Xml qui se respecte) ne se fusionnent pas de cette manière...
Il est plus pertinent et conseillé d'extraire les blocs souhaités de chaque fichier (avec XPath par exemple) et de reconstruire le fichier résultat

Hors ligne

#7 Le 08/10/2018, à 19:07

Zakhar

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

claudius01 a écrit :

Bonsoir,

Sauf erreur de ma part, 2 fichiers Gpx (comme tout fichier Xml qui se respecte) ne se fusionnent pas de cette manière...
Il est plus pertinent et conseillé d'extraire les blocs souhaités de chaque fichier (avec XPath par exemple) et de reconstruire le fichier résultat

Exact, un petit coup de xlstproc (installé de base) avec une transfo XSLT est le plus pertinent.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#8 Le 24/04/2019, à 13:32

Roger-Gabriel

Re : Utilisation de sed transformer 2 fichiers GPX , les fusionner(Résolu)

Je me suis trouvé avec un problème similaire et je suis repassé par là.
J'ai vu que claudius01 était passé par là lui aussi.
"Sauf erreur de ma part, 2 fichiers Gpx (comme tout fichier Xml qui se respecte) ne se fusionnent pas de cette manière.."
Il a raison dans le cas général, là il s'agit de parcours que l'on peut mettre bout à bout sans recouvrement, La commande

{ sed '/<\/trkseg>/,/<\/gpx>/d' mon 1 fichie; sed '/<?xml/,/<trkseg>/d' mon 2 fichier;} > fichier1+2

marche. le fichier est accepté par un gps Garmin.
Cependant il est possible que des choses soient fausses dans les entêtes.

Maintenant j'ai trouvé la commande avec gpsbabel pour fussionner 2 fichiers :

gpsbabel -i gpx -f fichier1.gpx -f fichier2.gpx  -o gpx -F fichier1+2.gpx

La commande sed pour supprimer les balises ele :

sed '/<ele>/,/<\/ele>/d' monfichier >monfichierS

La commande sed pour supprimer les balises time et les lignes vides :

sed -i '/<time>/d;/^$/d' monfichier 

la 1° commande n'écrase pas le fichier "monfichier" elle crée un nouveau fichier "monfichierS"
la 2° modifie "monfichier"
Il est possible que des commandes existent aussi avec gpsbabel qui produisent la même chose.

Dernière modification par Roger-Gabriel (Le 28/04/2019, à 12:15)

Hors ligne