PowerShell - ForEach-Objectの多重使用 - CSVファイルを読み取りデータに1を加算して出力する
Get-Content ".\test.csv" | %{ ( # 1行ごとの処理 $_ -split "," | %{ # 1データごとの処理 [int]$_ + 1 } ) -join "," } | Write-Output
test.csv
1,2,3 4,5,6 7,8,9
結果
2,3,4 5,6,7 8,9,10
普通のプログラムっぽい書き方(ForEach-Objectは使用しない)
$lines = Get-Content ".\test.csv" foreach ($line in $lines) { $data = $line -split "," $ary = @() foreach ($datum in $data) { $ary += [int]$datum + 1 } Write-Host ($ary -join ",") }
CSVにヘッダがある場合
$isHeader = $true Get-Content ".\test.csv" | %{ if($isHeader){ $isHeader = $false $_ } else { ( $_ -split "," | %{ [int]$_ + 1} ) -join "," } }