PowerShellでCSVから読み込んだ各要素を加工し、CSVで出力


CSVファイルを読み込み、半角スペースを消して出力したいと考えています。

**元データ:**

[code]

    1111     ,test2    ,test3   ,test4    
    111     ,test2    ,test3   ,test4    
    11     ,test2    ,test3   ,test4
    
[/code]

**期待する結果:**

[code]

    1111,test2,test3,test4
    111,test2,test3,test4
    11,test2,test3,test4
    
[/code]

CSVの各要素の半角スペースをTrimするため、PowerShellで次のようなコードを書いたのですが、出力されたCSVが`$results`のlengthになってしまいます。

解決策等ないでしょうか。

[code]

    $clms =@("col1","col2","col3","col4");
    
    $products = Import-Csv 'C:\test\input.csv' -Header $clms -Encoding Default
    $results = @()
    
    foreach ($product in $products){
     $line  = @()
        foreach ($clm in $clms) {
            $line += $product.$clm.Trim()
        }
     $results += $line
    }
    
    $results | Export-Csv -Encoding Default -NoTypeInformation 'C:\test\output.csv'
    
[/code]




読み込んだデータを変更して保存すれば良いと思います。

[code]

    $clms =@("col1","col2","col3","col4");
    
    $products = Import-Csv 'input.csv' -Header $clms -Encoding Default
    $results = @()
    
    foreach ($product in $products){
      foreach ($clm in $clms) {
        $product.$clm= $product.$clm.Trim()
      }
    }
    
    $products | Export-Csv -Encoding Default -NoTypeInformation 'output.csv'
    
[/code]

input.csv

> 1111 ,test2 ,test3 ,test4  
>  111 ,test2 ,test3 ,test4  
>  11 ,test2 ,test3 ,test4

output.csv

> "col1","col2","col3","col4"  
>  "1111","test2","test3","test4"  
>  "111","test2","test3","test4"  
>  "11","test2","test3","test4"

