Veröffentlicht 12. Juli 201015 j 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?
12. Juli 201015 j 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
14. Juli 201015 j 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?
16. Juli 201015 j 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
16. Juli 201015 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.