1行にスペースがある複数のCSV列を表示する

1行にスペースがある複数のCSV列を表示する

姓と名の入ったCSVファイルがあります。ヘッダーは「ファーストネーム" そして "苗字「表示はできるのですが、姓と名が別々の行に表示されます。

質問:Powershell で出力を 1 行に両方一緒に表示するにはどうすればよいですか。

この PowerShell は値を別々の行に区切ります。

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

答え1

使用方法$( ) 部分式演算子ネストされた形式では、複数の部分式の結果を連結し、それらを別の部分式内のグループとして返​​して、希望どおりの出力を返すことができます (つまり"$($(mutlivalue1) $(multivalue2))" == "val1 val2")。

パワーシェル

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

サポートリソース

  • Operators $( ) @( ) :: &

    $( ) サブ式演算子。

    部分式を使用して特定の値を返す プロパティオブジェクトの。単純な括弧とは異なり、部分式にはセミコロンで区切られた複数のステートメントを含めることができます。

    各ステートメントの出力は、部分式の出力に寄与します。単一の結果の場合はスカラーが返されます。複数の結果の場合は配列が返されます。

    サブ式を使用すると、中間変数を必要とせずに、1 行で式の結果を評価して操作できます。

答え2

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

答え3

いくつかの方法を提案します:

#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"
}

}

関連情報