Ich versuche, einige Daten zu bereinigen, und ich möchte sie schließlich in CSV-Form bringen.
Ich habe einige reguläre Ausdrücke verwendet, um es aufzuräumen, aber ich bin auf einem Schritt fest.
Ich möchte alle bis auf jede dritte neue Zeile (\ n) durch ein Komma ersetzen.
Die Daten sehen so aus:
%Vor%usw.
Ich brauche es in
%Vor%Jeder hat eine einfache Möglichkeit, dies mit sed oder awk zu tun? Ich könnte ein Programm schreiben und eine Schleife mit einem Mod-Zähler verwenden, um jedes erste und zweite Zeilenumbruchzeichen zu löschen, aber ich würde es lieber von der Kommandozeile aus machen, wenn möglich.
Mit awk:
%Vor%Dieses Skript speichert die letzten drei Zeilen und druckt sie bei jeder dritten Zeile. Leider funktioniert das nur mit Dateien, die ein Vielfaches von 3 Zeilen haben.
Ein allgemeineres Skript ist:
%Vor%In diesem Fall werden die letzten drei Zeilen in einer einzigen Zeichenfolge verkettet, wobei das Kommatrennzeichen eingefügt wird, wenn die Zeilennummer kein Vielfaches von 3 ist. Am Ende der Datei wird die Zeichenfolge gedruckt, wenn sie nicht leer ist mit dem nachgestellten Komma entfernt.
Eine Perl-Lösung, die etwas kürzer ist und die Dateien bearbeitet, die kein Vielfaches von 3 Zeilen haben:
%Vor%Verwenden Sie nawk oder / usr / xpg4 / bin / awk unter Solaris :
%Vor%