Leerzeilen in sortierter Datei

R

rikola

Foren Gott
Hallo,

ich habe eine sortierte Datei
Code:
A
A
A
B
B
C
C
C
C
(wobei die Zeichenkette am Anfang der Zeile, nach der sortiert wurde, komplizierter ist, als hier durch 'A,B,C' abgekuerzt.

Wie kann ich nach jeder Gruppe (also in der Zeile zwischen dem letzten A und dem ersten B usw) zwei Leerzeilen einfuegen, damit ich die einzelnen Gruppen in gnuplot mittels 'index' ansprechen kann?

Die Datei soll also dann so aussehen:
Code:
A
A
A


B
B


C
C
C
C
 
Hi,

sed waere dafuer jetzt auch nicht mein erster Gedanke, aber ich verstehe auch nicht wirklich was genau dein Problem ist, der Algorithmus ist doch hoechst simpel.

Gehe die Datei Zeile fuer Zeile durch, vergleiche jeweils eine Zeile mit der naechsten, und fuege 2 Leerzeilen ein wenn sie nicht gleich sind, ansonsten continue.

mfg,
bytepool
 
Klar ist der Algorithmus simple, und ich wuerde es wohl auch hinkriegen, ein C-Programm zu schreiben, das das macht, vermutlich auch ein awk-Programm. Ich wuerde viel lieber wissen, wie das ganze mit einer Skript-Sprache geht, und hatte gehofft, dass es etwas Einfacheres gibt. Nur leider kenne ich die ganzen Skript-Sprachen (sed, grep, etc) v.a. als Zeilenorientiert, d.h., ich weiss nicht, wie ich zwei aufeinanderfolgende Zeilen miteinander vergleiche ohne die Zeilen in ein array o.ae. zwischenzuspeichern.
 
Mit awk würde das so funktionieren:
Code:
last != "" && $0 != last {
	print ""
}
{
	print $0
	last = $0
}
 

Ähnliche Themen

Gruppenchat: OTP-Verschlüsselung

Unix Shell echo/ausgabe solange Bedingung ...

Textformatierung nach Cut "\" nach jeder Zeile?

Ausgabe gruppieren und sortieren

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Zurück
Oben