web-dev-qa-db-ja.com

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

姓名のCSVファイルがあります。ヘッダーは「 "」および「"」です。表示することはできますが、姓名が別々の行に表示されます。

質問: Powershellで両方を1行にまとめて表示するための出力を取得するにはどうすればよいですか。

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

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

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

パワーシェル

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

サポートリソース

  • Operators $( ) @( ) :: &

    $()SubExpression演算子。

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

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

    部分式を使用すると、1行で式の結果を評価して操作できます。中間変数は必要ありません:

1
Pimp Juice IT

私はあなたに複数の方法を提案します:

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

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