ich mach ein "smbstatus -b" und möchte anschließend diese Ausgabe weiterverwenden. Leider werden bei dieser Ausgabe keine Tabs produziert, sondern es handelt sich um ganz normale Leerzeichen. Ich hab mit unexpand versucht spaces in tabs umzuwandeln, aber ich stehe dann vor dem Problem daß nur einige Leerzeilen in tab umgewandelt werden und andere nicht. Ich möchte eigentlich folgendes erzielen, damit ich das Ergebnis dann komfortabel durch die Kommandos "cut -f" oder "awk -F" durchjagen kann.
Wenn mehr als 2 Leerzeichen hintereinander erkannt werden, soll dieser gesamte Leerbereich egal wieviel trailiung und leeding spaces folgten als TAB umgewandelt werden. So wird ganz klar ein Wort wie Domain Users bestehen bleiben, wogegen "hostname sonstwas" durch einen Tab getrennt wird.
Ich hoffe ihr versteht was ich meine. Wie mache ich so etwas? mit unexpand? mit sed? und wie bringe ich da diese Funktion mit ein, dass bei einer Zeichenfolge von 10 Leerzeichen nicht 5 tabs gebildet werden sonder nur einer?
Ich habs mal so versucht:
Code: Alles auswählen
sed 's/ */\t/g' ursprungsdatei.txt > ausgabedatei.txt
EDIT: Oh doch! es scheint zu funktionieren. Ich glaubs ja gar nicht hatte ne falsche eingabedatei genutzt bei meinem ersten Versuch.
EDIT2: zu früh gefreut. Leider wird mir damit auch zwischen dem Wort "Domain Users" ein Tab eingefügt. Und am Ende zwischen dem Hostname und der IP-Adresse wird kein Tag generiertr, wenn nur 1 Leerzeichen dazwischen war. Somit ist es blöd nach dieser Whitespace Erkennung zu arbeiten. Wie könnte ich denn sonst noch den Output von "smbstatus -b" weiterverarbeiten?
Hier das Beispiel einer smbstatus -b Ausgabe, damit das besser illustriert wird. Wenn ein Spaltenwert größer wie üblich ist (z.B. beim Hostnamen!) dann folgen 2 Leerzeichen und dann die IP-Adresse. Wenn aber der Hostname kürzer war, wird mit Leerzeichen einfach aufgefüllt, bis dann eben die IP-Adresse angezeigt wird. Und wenn der Hostname exakt 13 Zeichen lang ist, folgt danach nur ein einziges Leerzeichen bis zur IP-Adresse. Das macht mir den Strich durch die Rechnung
Code: Alles auswählen
1723 ameert Domain Users a00220a (::ffff:192.168.200.138)
32584 jkaruvfw Domain Users a40512a (::ffff:192.168.200.130)
20843 zwoelfzeichn Domain Users a50931a (::ffff:192.168.200.149)
29265 sechs6 Domain Users __ffff_192.168.200.203 (::ffff:192.168.200.203)
27216 fuenf Domain Users a70521a (::ffff:192.168.200.115)
26063 neunchars Domain Users hostmaxmor (::ffff:192.168.200.187)