Zeigen Sie mehrere CSV-Spalten an, die Platz in einer Zeile haben

Zeigen Sie mehrere CSV-Spalten an, die Platz in einer Zeile haben

Ich habe eine CSV-Datei mit Vor- und Nachnamen. Die Überschriften lauten "Vorname" Und "Familienname, Nachname". Ich kann es anzeigen, aber der Vor- und Nachname werden in getrennten Zeilen angezeigt.

Frage:Wie kann ich in Powershell die Ausgabe so einrichten, dass beides zusammen in einer Zeile angezeigt wird?

Diese PowerShell trennt die Werte in separate Zeilen:

 Import-Csv -Path C:\file1.csv | foreach {echo $_.'First Name’ $_.'Last Name’}

Antwort1

Verwendung der$( ) UnterausdrucksoperatorIn verschachtelter Form ist es möglich, mehrere Unterausdrucksergebnisse zu verketten und diese als Gruppe innerhalb eines anderen Unterausdrucks zurückzugeben, der die Ausgabe wie gewünscht zurückgibt (d. h. "$($(mutlivalue1) $(multivalue2))" == "val1 val2").

Power Shell

Import-Csv -Path "C:\file1.csv" | %{"$($_."First Name") $($_."Last Name")"};

Unterstützende Ressourcen

  • Operators $( ) @( ) :: &

    $( ) Unterausdrucksoperator.

    Verwenden Sie einen Unterausdruck, um bestimmte Eigenschafteneines Objekts. Im Gegensatz zu einfachen Klammern kann ein Unterausdruck mehrere durch Semikolon getrennte Anweisungen enthalten.

    Die Ausgabe jeder Anweisung trägt zur Ausgabe des Unterausdrucks bei. Für ein einzelnes Ergebnis wird ein Skalar zurückgegeben. Für mehrere Ergebnisse wird ein Array zurückgegeben.

    Mit Unterausdrücken können Sie die Ergebnisse eines Ausdrucks in einer einzigen Zeile auswerten und darauf reagieren, ohne dass eine Zwischenvariable erforderlich ist:

Antwort2

Import-Csv -Path C:\file1.csv | foreach {'{0} {1}' -f $_.'First Name’, $_.'Last Name’ | Write-host}

Antwort3

Ich schlage Ihnen mehrere Methoden vor:

#method 0 : on one row by you can keep your columns (result are list of objects)
import-csv "C:\temp\yooo.txt" | select "First Name", "Last Name"

#method 1 : create new column in select (result are list of objects)
import-csv "C:\temp\yooo.txt" | select @{Name="Identity";Expression={"{0} {1}" -f $_."First Name", $_."Last Name"}}

#method 2 : create new column in loop (result are list of string)
import-csv "C:\temp\yooo.txt" | %{"{0} {1}" -f $_."First Name", $_."Last Name"}

#method 3 : create new object in loop (result are list of objects)
import-csv "C:\temp\yooo.txt" | %{

[pscustomobject]@{
FirstName=$_."First Name"
LastName=$_."Last Name"
}

}

verwandte Informationen