sed in komplizierten Fall

schorsch312

schorsch312

Routinier
Hi,
iich brauche eure Hilfe bei folgendem Fall.
Ich habe ein echt langes Datenfile aus einer noch längeren Simulation.
Ich habe mir viel zu viele Zwischenergebnisse rausgeschrieben und will jetzt nur jeden 10 Wert behalten
Ich will jetzt also folgendes machen:
  1. String suchen
  2. Bis andere String kommt Daten behalten
  3. Bis nächster String kommt alle Zeilen löschen
  4. Ab Punkt 2 wiederholen, bis ende der Datei

Also:
Ausgangedatei
HEADER
String1
Zeilen
String2
Zeilen
String3
.
.
.
StringN
Zeilen


Nach der Bearbeitung
HEADER
String1
Zeilen
String10
Zeilen
String20
.
..
.
StringN
Zeilen

Kann mir jemand sagen, wie das geht und ob sed das passende Tool ist?
Danke, Gruß, Georg
 
versteh nur bahnhof kofferklauen? kannst du mal etwas deutlicher beschreiben was du eigentlich machen willst?+

grüße tuxlover
 
Eventuell mit Perl statt sed?
Code:
perl -ne 'if (/^String/) { $i++; $p = $i % 10 ? 0 : 1; }; print if $p;' <in >out

Gruesse
 
Sorry ich weiß dass es sehr verwirrent war.
Ich habe eine datei, die sieht so aus.
Schritt1
Schritt2
Schritt3
...
letzter Schritt

Jeder Schritt besteht aus ca. 100 Zeilen. Jeder Schritt beschreibt eine mechanische Spannung zu einer gewissen Zeit. Ab einem bestimmten Schritt ist die Auflösung viel zu hoch. Ich will um das Ergebnis visualisieren zu können nur jeden 10. Schritt haben, also 9 von 10 löschen.

Nach der Bearbeitung soll die Datei so aussehen
Schritt1
Schritt2
Schritt3
Schritt13
Schritt23
Schritt33
...
letzter Schritt

Ich hoffe, dass es jetzt klarer ist, das mit perl versuche ich mal. Danke und Gruß, Georg
 

Ähnliche Themen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

CSV Datei mit sed manipulieren/optimieren/ergänzen

HP PSC 2175 - CUPS druckt nicht

ersetzen in einem Rückgabestring eines vorher ausgeführten Programms

Defekte Hardware / Dualcore

Zurück
Oben