Angesichts dieser Datei (Anmerkungen sind nicht Teil der Datei, sondern Teil der Erklärung) ...
x,a,001,b,c,d,y
x,a,002,b,c,e,yy
x,bb,003,b,d,e,y
x,c,004,b,d,e,y
x,c,005,b,d,e,y # nb - dupe of row 4
x,dd,006,b,d,e,y
x,c,007,b,d,e,y # nb - dupe of row 4 and 5
x,dd,008,b,d,f,y
x,dd,009,b,d,e,y # nb - dupe of row 6
x,e,010,b,d,f,y
... Ich möchte folgende Ausgabe ableiten:
x,a,001,b,c,d,y
x,a,002,b,c,e,yy
x,bb,003,b,d,e,y
x,c,004,b,d,e,y
x,dd,006,b,d,e,y
x,dd,008,b,d,f,y
x,e,010,b,d,f,y
Wenn Spalte 3 aus der Datei herausgeschnitten wurde und dann uniq über die Datei ausgeführt wurde. Wenn für die verbleibenden Zeilen der Wert für Spalte 3 wieder an der richtigen Stelle hinzugefügt wurde, würde ich das obige Ergebnis erhalten.
Aber ich kämpfe wirklich darum, etwas zu finden, das dies tun würde. Ich würde eine Gelegenheit begrüßen, mehr über die Textverarbeitungsprogramme von Linux zu erfahren.
Leistung: Dateien werden wahrscheinlich nicht größer als 1 MB, und es gibt nur 1 Datei pro Tag.
Ziel: Debian GNU / Linux 7 amd64, 256 MB / Xeon.
Bearbeiten: Beispiel optimiert, da Felder keine feste Breite haben und eine Lösung mit uniq --skip-chars=n
, soweit ich das beurteilen kann, nicht funktioniert.
uniq
um meine aktualisierte Antwort zu überprüfen. :)