Autor Thema: Namen eines Outputfiles  (Gelesen 2312 mal)

Agor

  • Gast
Namen eines Outputfiles
« am: 14. März 2008, 10:45:25 »
Hallo alle miteinander!

Ich habe eine kleines Problem und wie ich auch drehe, ich kann keine Lösung finden:

Ich habe einen Prozess auf einer HPUX-Maschine, die eine Datei nimmt, diese verarbeitet und das Ergebnis in eine andere Datei ausgibt. Der Name der Ausgangsdatei ist dabei in einem Konfigurationsfile festgelegt, in meinem funktionierendem Fall lautet der String in diesem Konfigurationsfile so:
 
/var/opt/program/File-%[%Y%m%d-%H%M%S]t.DAT

Das Ergebnis dabei schaut dann so aus:

File-20080314-090456.DAT

Nun habe ich die Aufgabe am Ende dieses Files die letzten 4 Zeichen des Originalfiles zu setzen. Mein Gedanke dabei war einfach hinten dann den Sting zu erweitern:

/var/opt/program/File-%[%Y%m%d-%H%M%S]t-%[4]d.DAT

So geht das aber leider nicht. Was dann geschieht ist, dass zwar 4 Zeichen dazugesetzt werden, aber leider sind die ersten 2 Zeichen eine 0:
Originalfile:

CF0117.DAT

und Outputfile:

File-20080313-151210-0017.DAT

Auch wenn man nun statt der [4] den String [5] setzt, ändert sich leider nur die Anzahl der Nullen   :-(
Ich suche schon seit 2 Tagen nach der Lösung, habe sie aber bis jetzt noch nicht gefunden, vielleicht hat hier jemand eine Idee.

Besten Dank

unixforum.net - Der Treffpunkt für UNIX Fans

Namen eines Outputfiles
« am: 14. März 2008, 10:45:25 »

Offline Ten Little Indyans

  • Unix Bachelor
  • ***
  • Beiträge: 183
    • Profil anzeigen
Re: Namen eines Outputfiles
« Antwort #1 am: 14. März 2008, 12:19:21 »
Hallo Agor,

Du erwähnst mit keiner Silbe die Programmiersprache / Skriptsprache in der die Anwendung geschrieben ist die dieses Konfigurationsfile auswertet. Ausserdem wäre es nett gewesen Dich vorher mal vorzustellen, damit wir z.B. eine Ahnung haben was für Vorkenntnisse vorhanden sind.

Die Syntax so wie sie in dem String vorkommt kenne ich nicht, aber es handelt sich offenbar um Platzhalter, ähnlich wie sie bei printf in der Shell, in Perl oder in C verwendet werden.

Nach meinem Verständnis wird das %[4]d zur Laufzeit durch den Wert einer Variable ersetzt. Diese wird dann wohl als vierstellige Dezimalzahl ausgegeben. Wenn Du jetzt im Format %[5]d schreibst, dann wird dadurch nicht der Wert der Variablen geändert, sondern nur die Anzahl Stellen mit der sie ausgegeben wird.

Zu dem Zeitpunkt wo das Outputfile erzeugt wird hat diese Variable offenbar nur den Inhalt 17. Du musst also im Programmcode schauen wo sie gesetzt wird und an der Stelle dafür sorgen dass die fehlenden zwei Stellen übernommen werden.

Gruß,
Andrew.

Agor

  • Gast
Re: Namen eines Outputfiles
« Antwort #2 am: 14. März 2008, 13:15:27 »
Hallo!

Danke für die rasche Antwort.

Das mit dem Vorstellen tut mir leid, ich habe aber dieses bereits nachgeholt; ich habe es im Eifer des Gefechts vergessen  ::)

Programmiersprache ist mir leider unbekannt (ist ein binary), ich habe gehofft, dass das so eine Art Shell ist und hier jemanden dieses zufällig kennt.
Es könnte aber auch sein, dass es sich hier um ein eigens Produckt der Firma handelt die dieses Programm geschrieben hat, dann habe ich ein Problem......