batch datei erstellen

  • #1
A

arthur

Guest
hey leute,
hab folgendes problem:
habe eine textdatei, die ich automatisch über eine batch-datei editieren möchte.
der inhalt der datei :
! x-y curve points: Head time histories
#1
!Obs_1
0.00000000000000e+00 1.63494529724121e+01
1.00000000000000e+00 1.63762378692627e+01
2.00000000000000e+00 1.63777027130127e+01
END
#2
!Obs_2
0.00000000000000e+00 1.63494529724121e+01
1.00000000000000e+00 1.63762378692627e+01
2.00000000000000e+00 1.63777027130127e+01
.
.
.
.
.
#49
!Obs_49
0.00000000000000e+00 1.63494529724121e+01
1.00000000000000e+00 1.63762378692627e+01
2.00000000000000e+00 1.63777027130127e+01
END
END
dabei handelt es sich um eine ergebnissdatei einer nummerischen simulation.
um die daten auszuwerten brauche ich aber 49 einzelne dateien, d.h jede datei ist eine meßstelle. also:
#1
!Obs_1
die erste meßstelle
.
.
.
#49
!Obs_49
die letzte
die datenblöcke der einzelnen meßstellen werden ducrh ein END getrennt und das ende der datei wird durch ein
END
END
markiert.
was ich jetzt gerne machen würde ist die automatisierung des editierens.
d.h. die batchdatei soll den block von #1 bis END in eine eigene datei kopieren und dieser einen eigenen namen geben. die namens zuordnung ist fest vorgegeben, z.b. der #1 = 230052, #49 = 2572H usw.

ist kein trollen aber unter linux läßt sich sowas mit der konsole relativ leicht umsetzen. komme eigentlich von linux und weiß überhaupt nicht welche möglichkeiten mir windows bittet bzw. wo ich die referenz dafür finden kann. hab gegoogelt ohne erfolg.

weiß jemand wie man so was umsetzen kann

gruß & dank
arthur
 
  • #2
Ohne Zusatztools keine Chance.
Ansonsten versuch es dochmal mit Cygwin.

Eddie
 
  • #3
ok cygwin wäre ja eine alternative aber ungern wegen der großen installation.

welche tools machen so was?
 
  • #4
  • #5
Hallo,

das ist mit der Textiteration der /F der For-Schleife möglich.

Ich empfehle das Studium der Zusammenstellung von BB.

http://www.bb-sys.de/bbshell.htm

Falls das Thema noch aktuell ist, leiste ich gerne Hilfe.

Gruß
Edgar
 
  • #6
Hallo

mit awk.exe (für Dos) geht das folgendemassen:

Code:
BEGIN  {    # aufruf: awk.exe -f da.awk  < data.txt 
            # (geht auch aus batch)
            # Juergen Overroedder PB
            # [email][email protected][/email]
         FS = #
             # dateinamen festlegen
        D[1] = 1111.txt
        D[2] = 2a2a2.txt
        D[3] = 33333.txt
        D[49] = 494949.txt
        }
        {if ($0 ~/\#/ )
            {   # info auf Schirm
             printf( Schreibe:   %s\n,D[$2])
                # Dateiname definieren
             datei = D[$2]
                # evtl. existierende Date löschen
             printf() > datei 
                # lesen/schreiben bis END           
             while ($1 != END)
                   {print $0 >> datei
                    getline
                   }
             print $0 >> datei
             }
         }


den Inhalt einfach in eine txt datei (zb. da.awk) speichern.
dann mit dem Aufruf:

awk -f da.awk <datendatei

ausführen

good luck
 
Thema:

batch datei erstellen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben