h3llraid3r Geschrieben 12. Juli 2010 Teilen Geschrieben 12. Juli 2010 Hallöchen, ich habe hier ein kleines Problem, wo ich nicht direkt weiter komme... Daher folgende Situation: Es existiert ein XML-File mit diversen Zeilen, dort kommen jedoch auch Zahlen in Exponential-Form vor (z.B. 1.069666e+02), die durch <v> und </v>-Tags umschlossen werden. Da ich diese Form nicht gebrauchen kann, müssen alle Zahlen in ein numerisches Format konvertiert werden. Mein bisheriger Ansatz: ## gesuchte Felder anhand der Tags auswählen cut -d "<" -f5 file.xml | cut -d ">" -f2 ## Leerzeilen löschen | grep -v '^$' ## Zahlen in Integer umwandeln und ausgeben |awk '{printf("%.3i \n",$1)}' Und hier stecke ich dann momentan fest. Er gibt mir natürlich die richtigen Werte aus, diese müssen ja aber auch irgendwie wieder in die XML-Datei rein (file2.xml, wie auch immer). Hatte es schon mit sed versucht, aber wenn ich diesem als Suchmuster cut -d "<" -f5 file.xml | cut -d ">" -f2 |grep -v '^$' und als Ersetzungswert awk '{printf("%.3i \n",$1)}' übergebe, kann er damit nicht umgehen, da er die Befehlsfolge nicht zu erkennen scheint. Kann mir da jemand auf die Sprünge helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BrauniDeluxe Geschrieben 12. Juli 2010 Teilen Geschrieben 12. Juli 2010 http://forum.fachinformatiker.de/java/120376-xml-value-ersetzen.html Vielleicht ist das was für dich .. also wenn es nicht direkt über die Konsole gemacht werden muss Gruss Hansi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
h3llraid3r Geschrieben 14. Juli 2010 Autor Teilen Geschrieben 14. Juli 2010 Also prinzipiell sollte es schon auf der Basis des oben Dargestellten realisiert werden, mit Java gibt es dann (muss auf verschiedenen Servern laufen) eventuell Probleme wegen nicht vorhandener Java-Engine etc... Hat vielleicht sonst noch jemand eine Idee? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigvic Geschrieben 16. Juli 2010 Teilen Geschrieben 16. Juli 2010 Hi, hab ich richtig verstanden, dass du ein "substitute" für awk suchst? Schau mal die Funktion "sub" an - awk/Reguläre Ausdrücke ? Mikiwiki . Ich benutze für sowas auch keine shell mehr, da es ab einem gewissen grad zu kompliziert wird oder an Grenzen stösst. Und Perl ist auch auf jedem Unix/Linux drauf - daher ist das my language of choice. ciao, vic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
h3llraid3r Geschrieben 16. Juli 2010 Autor Teilen Geschrieben 16. Juli 2010 hi, danke dir - awk benutze ich auch so schon teilweise. Da mir die Zusammenbauerei des awk zu kompliziert und aufwändig war, habe ich einen anderen Weg gesucht und siehe da... Das Reporting-Tool was ich nutze kann nicht nur XML-Files als Source nehmen sondern auch csv-Dateien. Die csv-Datei war dann recht schnell zusammengebaut... Ein awk mit einem printf (Für die Werte) und einem print strftime (für die Umwandlung zw. Exponential-Darstellung und Normaldarstellung). Trotzdem danke für die Rückmeldung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.