O
Orca75
Grünschnabel
Hi
Ich habe einen Text, den ich mit sed so umwandeln möchte, dass alle Zeilen, die nicht mit hostname beginnen, mit einem Komma auf die selbe Zeile geschrieben werden. Das ganze probiere ich auf auf UNIX unter einer bash und mit den UnxUtils unter Windows, kriege es aber nicht hin.
und erwarte diese Ausgabe:
Im Moment habe ich folgendes:
was folgendes ergibt:
a) Wieso ersetzt er nur das erste newline hinter hostname?
b) Könnte ich das ganze negieren, d.h. lösche das newline nicht, wenn in der nächsten Zeile das hostname vorkommt?
c) Könnte man dies einfacher in awk schreiben?
Danke
Chris
Ich habe einen Text, den ich mit sed so umwandeln möchte, dass alle Zeilen, die nicht mit hostname beginnen, mit einem Komma auf die selbe Zeile geschrieben werden. Das ganze probiere ich auf auf UNIX unter einer bash und mit den UnxUtils unter Windows, kriege es aber nicht hin.
Code:
hostname aaa1-2
get-host a1
host a2
hostname bbb1-4
get-host,b1
host,b2
get-host,b3
get-host,b4
host,b5
hostname ccc1-5
host,c1
get-host,c2
get-host,c3
host,c4
host,c5
Code:
hostname aaa1-2,get-host a1,host a2
hostname bbb1-4,get-host,b1,host,b2,get-host,b3,get-host,b4,host,b5
hostname ccc1-5,host,c1,get-host,c2,get-host,c3,host,c4,host,c5
Code:
:loop
{
N
s/\([^\n]*\)\n\(get-\)\?host\([^n]\)/\1,\2host\3/
}
t loop
Code:
sed -f y.txt x.txt
hostname aaa1-2,get-host a1,host a2
hostname bbb1-4
get-host,b1,host,b2,get-host,b3,get-host,b4
hostname ccc1-5
host,c1,get-host,c2,get-host,c3,host,c4,host,c5
b) Könnte ich das ganze negieren, d.h. lösche das newline nicht, wenn in der nächsten Zeile das hostname vorkommt?
c) Könnte man dies einfacher in awk schreiben?
Danke
Chris