Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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?

Geschrieben

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

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...