Split-text-Datei in mehrere Teile, basierend auf einem Muster entnommen aus der text-Datei

Habe ich viele text-Dateien mit fester Breite Daten, z.B.:

$ head model-q-060.txt 
% x                      y                        
15.0                     0.0                      
15.026087                -1.0                     
15.052174                -2.0                     
15.07826                 -3.0                     
15.104348                -4.0                     
15.130435                -5.0                     
15.156522                -6.0                     
15.182609                -6.9999995               
15.208695                -8.0  

Die Daten umfassen 3 oder 4 läuft eine simulation, die alle gespeichert sind in eine Textdatei ohne Trennzeichen zwischen den Läufen. In anderen Worten, es gibt keine Leerzeile oder irgend etwas, z.B. wenn es nur 3 'records' pro laufen, würde es so Aussehen für die 3 läuft:

$ head model-q-060.txt 
% x                      y                        
15.0                     0.0                      
15.026087                -1.0                     
15.052174                -2.0                     
15.0                     0.0                      
15.038486                -1.0                     
15.066712                -2.0                     
15.0                     0.0                      
15.041089                -1.0                     
15.087612                -2.0                     

Es ist eine COMSOL Multiphysics-Ausgabe-Datei für Interessierte. Optisch kann man sagen, wo die neuen Daten beginnen, als der erste x-Wert ist wiederholt (eigentlich die gesamte zweite Zeile ist die gleiche für alle von Ihnen). Also muss ich zunächst öffnen Sie die Datei und erhalten den x-Wert, speichern Sie es, dann verwenden Sie es als ein Muster, das auf mit awk oder csplit. Ich bin kämpfen, um diese Arbeit heraus!

csplit wird die Arbeit machen:

$ csplit -z -f 'temp' -b '%02d.txt' model-q-060.txt /^15\.0\\s/ {*}

aber ich habe zu wissen, das Muster nach split auf. Diese Frage ist ähnlich, aber alle meine text-Dateien wird möglicherweise ein anderes Muster zu entsprechen: Split-Dateien basierend auf Datei-Inhalt, und pattern-matching..

Ben.

  • Würden Sie das Objekt ein python-oder perl-basierte Lösung? Es würde nur ein paar Zeilen, die ich erwarte.
  • Nach diesem bin ich der Verarbeitung der Daten in python-matplotlib, python so wären auch Super!
  • Ist ein start der neuen laufen, das einzige mal, dass die unabhängige variable rückwärts gehen kann? Zu sein scheint, dass viel mehr robuste Detektion Methode als die Suche nach einer wiederholten Zeile.
  • Ben Voigt - ja, gute Beobachtung. Wie meinst du dann das?
Schreibe einen Kommentar