Extrahieren von Spalten aus Textdateien mit PowerShell

8

Ich muss Spalten aus einer Textdatei extrahieren, die in diesem Beitrag erklärt wird:

Extrahieren von Spalten aus einer Textdatei mit Perl One-Liner: ähnlich Unix-Schnitt

Aber ich muss dies auch in einem Windows Server 2008 tun, auf dem Perl nicht installiert ist. Wie kann ich das mit PowerShell machen? Irgendwelche Ideen oder Ressourcen? Ich bin PowerShell noob ...

    
atricapilla 23.03.2010, 19:34
quelle

4 Antworten

12

Versuchen Sie Folgendes:

%Vor%

Und wenn Sie möchten, dass die Daten in diesen Spalten in derselben Zeile gedruckt werden:

%Vor%

Beachten Sie, dass PowerShell 2.0 für den Operator -split erforderlich ist. Das ,4 teilt dem Split-Operator die maximale Anzahl an geteilten Strings mit, die Sie möchten, aber denken Sie daran, dass der letzte String immer alle Concat'd enthalten wird.

Für Spalten mit fester Breite gibt es einen Ansatz für die Spaltenbreite gleich 7 ($ w = 7):

%Vor%

$ res wird jede Spalte für alle Zeilen enthalten. Um die maximalen Spalten zu setzen, ändern Sie $c++ -lt 2 von 2 in etwas anderes. Es gibt wahrscheinlich eine elegantere Lösung, aber momentan habe ich keine Zeit, darüber nachzudenken. : -)

    
Keith Hill 23.03.2010, 19:39
quelle
4

Unter der Annahme, dass es Leerzeichen enthält, sollte dieser Code ausreichen.

%Vor%     
JaredPar 23.03.2010 19:39
quelle
0

Zu gewöhnlich,

%Vor%     
hoge 24.03.2010 16:54
quelle
0

Versuchen Sie es. Dies hilft dabei, anfängliche Zeilen zu überspringen, wenn Sie möchten, Spalten extrahieren / iterieren, die Spaltendaten bearbeiten und den Datensatz neu erstellen:

%Vor%     
user3100105 22.09.2017 15:05
quelle