Skript zum konvertieren einer Ausgabe in ein Excel-sheet
Habe ich diese Datei enthält die folgenden Daten:
-------------------[ server10 ]-------------------
user1
user2
user99
user100
-------------------[ server20 ]-------------------
user1
user2
user10
user4
-------------------[ server30 ]-------------------
user10
user30
user40
Ich konvertieren möchten diese Ausgabe in Excel-Blatt, so daß ich ti an mein management. Keine Ahnung, wie das tun können???
Möchte ich die Ausgabe in folgendem format in das Excel-Blatt:
Hostname users
server10 user1
user2
user99
user100
server20 user2
user10
user4
...
...
Bis hier "David", half mir mit Python (openpyxl). aber hier habe ich neue Spalte (Letzte Anmeldung), die ich hinzufügen möchten, in excel-also hier ist das Beispiel.
-------------------[ server10 ]-------------------
user1
never
user2
Oct 17, 2011
user99
Jan 01, 2007
user100
Feb 02, 2010
-------------------[ server20 ]-------------------
user1
never
user2
never
user10
jul 17, 2001
user4
Dec 25, 1999
-------------------[ server30 ]-------------------
user10
Aug 10, 2012
user30
never
user40
never
In excel würde es so sein.
Hostname users Last logon
server10 user1 never
user2 Oct 17, 2011
user99 ...
user100 ...
server20 user2
user10
user4
...
...
Hinweise: Benutzernamen, könnte hier anders sein, gab ich Ihnen Beispiel userX, aber es wäre spatel, jim, eric usw...
- Schritt 1: Kopieren Sie die Datei. Schritt 2: Einfügen in Excel. Schritt 3: Stellen Sie die Tabellenkalkulation ziemlich. Schritt 4: Gewinnen.
- Können Sie bereinigen, dass im letzten Satz ein wenig? Ich verstehe nicht, was du versuchst zu erreichen. Sie wollen in der Lage sein zu Lesen, den Inhalt dieser Datei in excel?
- Will ich diese raw-Ausgabe in excel-Blatt. so wird es schön Aussehen.
- Ich habe meine Frage bearbeitet
- ich habe 1000 Einträge in der Datei. tun Sie wollen mich zu kopieren/einzufügen ? wenn ja, wie?
- Warum Ihr negativ gestimmt? war meine Anforderung ungerade?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andere alternative ist die Verwendung der
openpyxl
- Modul in python:Hinweis: das ist etwas brüchig, da kommt es auf die inline-Daten immer nach einem "user" - Datensatz mit einer "last logon" - Datensatz. Wenn dieses Muster nicht beachtet, dann wird der Prozess fehl. Zum Beispiel, wenn Sie hatte zwei aufeinander folgende Benutzer Datensätze, ohne eine "last logon" - Eintrag im-zwischen.
(?P<server>server\d+)
ist bekannt als "benannte Gruppe". Dieser Artikel:?P<server>
setzt sich der name, der verwendet werden kann als Rückverweis später, als ich in diese Zeile:c.value = m.group('server')
. Alternativ können Sie verwenden Sie einfach diese Muster:^[-\[\s]+(server\d+)[-\]\s]+$
, dann Rückverweis es so:c.value = m.group(0)
. Es macht nicht viel Unterschied, aber in einem komplexeren Muster mit vielen Rückverweise, die genannten Gruppen sind leichter zu behalten als zahlen.user1, never
. Sie hätte weniger Risiko, das Skript zu scheitern, weil die Daten haben außerhalb der Reihenfolge irgendwie. Alles was es braucht ist ein Fehler in dem Muster und es funktioniert nicht.Ich denke, der einfachste Weg ist die Verwendung von CSV (Comma Separated Value) - format.
Die Idee ist, formatieren Sie Ihre Ausgabe wie diese:
Dann importieren Sie Ihre CSV-Datei in excel, wählen Sie "CSV", dann "formatiert" und stellen Sie sicher, dass die Werte durch ein Komma getrennt werden. Nennen wir tocsv.sh das Skript im folgenden:
Wenn dataserver.txt ist die Textdatei von Daten, dann müssen Sie:
./tocsv.sh dataserver.txt > dataserver.csv
und Sie importieren können dataserver.csv in Excel.
Dieser Lösung wird davon ausgegangen, dass Sie möchten, dass jede Zeile Ihrer Daten zu besetzen, eine Zelle in der gleichen Spalte.
Bestehenden Bibliotheken in Python, um Ihnen zu helfen mit diesem:
http://www.python-excel.org/
Ich bin keine Kenntnis von einem einfachen shell-Skript-Lösungen für die Erzeugung von excel-Dateien.