Suchen und ersetzen in einer csv-Spalte mit powershell
Ich habe eine große CSV-Datei, die wie folgt aussieht namens student.export.text
Matrikelnummer,Nachname,Vorname,Vorname,Schoolid,Jahrgangsstufe,Geburtsdatum
Ich versuche, den Aufbau eines automatisierten task wird nachts ausgeführt, so dass ein anderes Stück software verstehen können, die CSV richtig.
Hier ist mein code, aber ich bin etwas fehlt, dass zu einem Fehler führt. Ich bin neu in Powershell, und ich hoffe auf einige Ratschläge.
Jede Hilfe wird sehr geschätzt!
$Replacements = @{
"5" = "AE";
"7" = "ER";
"10" = "FM";
"12" = "HC";
"14" = "JH";
"18" = "LE";
#...]
}
Import-Csv .\student.export.text | ForEach-Object {
$_.Schoolid = $Replacements[$_.Schoolid]
$_
} | Export-Csv -NoTypeInformation .\new.csv
- Dies kann absolut geschehen mit Powershell. In der Tat gibt es wahrscheinlich ein halbes Dutzend verschiedene Möglichkeiten, es zu tun. Was haben Sie versucht?
- Um ehrlich zu sein, ich habe es nicht geschafft, irgendetwas richtig zu tun, außer öffnen Sie die original-export, und ändern Sie die Kopfzeile, so dass die software zu verstehen kann für die Eingabe. Ich bin völlig neu auf powershell und nicht wissen, wo zu beginnen. Können Sie mir helfen?
- Sie können versuchen, ab hier: technet.microsoft.com/en-us/library/ee221100.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Ansatz, der funktionieren kann.
Im ersten Schritt richten wir ein PowerShell-Hashtabelle (eine Art von Schlüssel-Wert-paar-Liste), und importieren Sie dann die CSV-Datei mit
Import-Csv
und speichern Sie es in den$csv
variable. Dieses cmdlet erstellt ein Objekt aus jeder Zeile der CSV, die wir manipulieren können leicht. Für jede Zeile, die wir ersetzen Sie einfach dieSchoolid
Feld mit dem Wert der ID-Schlüssel in der$schoolIdsToNames
hashtable. Endlich, wir exportieren die CSV zu einer anderen Datei.Anderen, mehr PowerShell-ly-Ansatz wäre so etwas wie dieses:
Diese one-liner importiert die CSV und sendet es entlang der pipeline. Für jede Zeile, die wir auswählen, werden alle Eigenschaften der Zeile mit
Select-Object
und fügen Sie eine neue Eigenschaft namensSchoolName
, dessen Wert mit der gleichen hash-Tabelle-basierte Technik wie oben. Schließlich exportieren wir die Objekt-Liste in CSV.