Wie kann man mit SED oder AWK weiterhin von einem Muster anhängen?Linux

Linux verstehen
Anonymous
 Wie kann man mit SED oder AWK weiterhin von einem Muster anhängen?

Post by Anonymous »

Wie füge ich aufeinanderfolgende Linien mit SED (oder awk) hinzu, bis ein Muster gefunden wird? < /p>
Ich habe diese Daten: < /p>

Code: Select all

max system cycles: 9087AED
max system scans: 900
Secure connection

date:....

1:    ID                 = XX_34_4_7_6e
field1          = trc_1_1
field2               = 24
Blank field2          =
field3 XX       = OK (45)
field4 XX               = assfsdf
field5 XX YY      = sdffee (ssddT)
field6 a b c d = no
field7 ID            = zip
field8               = city

2:    ID                 = YY_z3_4_t20
field1          = xyz1_1_t
field2               = 20
Blank field2          =
field3 XX       = OK (5)
< /code>
Ich beabsichtige, diesen Text zu normalisieren, indem alle Zeilen für einen Datensatz (beginnend mit einer Zahl) in eine Zeile zusammengeführt werden. Ich bin mir nicht sicher, wie ich mehr als eine Zeile anhängen soll? Zeilen oben, die nicht genau der "Datensatz" sind, wird auch angehängt ... < /p>
$ sed  -e '/[0-9]/ N; s/\n/,/' /var/tmp/tmp1
max system cycles: 9087AED,max system scans: 900
Secure connection

date:....

1:    ID                 = XX_34_4_7_6e,      field1          = trc_1_1
field2               = 24,      Blank field2          =
field3 XX       = OK (45),      field4 XX               = assfsdf
field5 XX YY      = sdffee (ssddT),      field6 a b c d = no
field7 ID            = zip,      field8               = city

2:    ID                 = YY_z3_4_t20,      field1          = xyz1_1_t
field2               = 20,      Blank field2          =
field3 XX       = OK (5)
< /code>
Wie können wir weiter anhängen, bis der nächste Datensatz beginnt? < /p>
Danke. Bearbeiten < /strong>:
Hinzufügen der Ausgabe, die ich mit Hilfe im Internet erhalten konnte. Das einzige [url=viewtopic.php?t=11587]Problem[/url] ist, dass es in allen Zeilen funktioniert. Ich muss feststellen, wie ich nur auf 'Datensätze' einschränken kann .... < /p>
sed '/./{H;$!d} ; x ; s/.\n/,/g; s/ *//g' /var/tmp/tmp1

maxsystemcycles:9087AE,maxsystemscans:90,Secureconnection

date:....

1:ID=XX_34_4_7_6,field1=trc_1_,field2=2,Blankfield2=,field3XX=OK(45,field4XX=assfsd,field5XXYY=sdffee(ssddT,field6abcd=n,field7ID=zi,field8=city

2:ID=YY_z3_4_t2,field1=xyz1_1_,field2=2,Blankfield2=,field3XX=OK(5)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post