PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scripting: Wert in Zeile ändern.



berell
11-03-2019, 14:58
Hallo, lang lang ist es her da ich noch bashen konnte.

nunja für ein GPS-Projekt stehe ich vor folgendem Problem:

Es muss eine Datei Zeilenweise eingelesen werden, ein Wert gefunden werden und je nach dem welchen wert ich übergebe um diesen gekürzt werden. Idealerweise gebe ich noch an von welcher Zeile bis welcher Zeile das ausgeführt werden soll.

Also ums zu verdeutlichen. die GPS Datei hat unendlich viele Zeilen like diese:
<VideoPoint Distance="34914.724489331216" Lat="50.54771812726846" Lng="8.098671068368624" VideoTime="5346.8102428908333" />

der Wert VideoPoint Distance=34914.72..." muss um 55 gekürzt werden oder auch bspw. 30 je nach dem was ich dem script übergebe.

Wenn wir jetzt noch dem Programm übergeben könnten, das er das nur bis zum VideoPoint xxx machen soll, bzw. noch besser von VideoPoint xxx bis xxx wäre es perfekt

Zeile für Zeile nach einander einlesen kann ich ja, das ist ja rel einfach zu finden. der Rest für ein Profi sicherlich auch, für mich jedoch leider nicht mehr, da ich viel zu lange raus bin.

Ja und jetzt kommt es:
das beste wäre es das ganze würde auf einem Windows Rechner laufen, denn diese Datei muss in einem Windows Programm geladen werden, getestet werden ob die Punkte nach der Beearbeitung besser passen oder nicht und ständiges rebooten wäre zwar möglich, auch ist ein zweiter Rechner vorhanden, aber da es noch ein paar andere rein Windows-User gibt wäre es toll es würde auf einem W-Rechner laufen, aber nicht zwingend notwendig, bash geht auch :-)

Kann mir jemand dabei helfen ? Wäre klasse.

Grüße Bernd

berell
11-03-2019, 19:12
so hab dann doch mit etwas recherchieren folgendes hinbekommen.
Den Rest (von bis) schaffe ich auch noch.
Allerdings wäre es großartig wenn mir das einer in eine WindowsKompatible Scriptsprache umwandeln könnte:

#!/bin/bash

while read entry

do



d=`echo $entry | grep "AltitudePoint" | grep "Distance" | cut -d" -f2 | cut -d. -f1`



if [ $d ]; then
echo "Alt:" $entry
a=`expr $d - 50`
if [ $d -gt "0" ]; then
echo "Neu:" $entry | sed s/$d/$a/g
echo $entry | sed s/$d/$a/g >> neu.xml
fi
else
echo $entry >> neu.xml
fi




done < "track_ori.xml"