在PowerShell中将CSV字符串列转换为整数

lndjwyie  于 2023-07-31  发布在  Shell
关注(0)|答案(1)|浏览(129)

我正在尝试将列从字符串更新为整数。
我有一个file.csv

"Numbers", "Names"
"1", "Dave"
"4", "Peter"
"8", "Holly"

字符串
我想将Numbers列更新为int

"Numbers", "Names"
1, "Dave"
4, "Peter"
8, "Holly"


有没有办法循环遍历Numbers列中的值,并将这些值类型转换为int,然后用新值更新相同的file.csv表?
这是我到目前为止所想到的:

$csv = Import-CSV file.csv
$CountCol = $csv | Select-Object 'Numbers'
$col1 = [int]$CountCol[0]
$col2 = [int]$CountCol[1]
$col3 = [int]$CountCol[2]


我还想也许我可以做一个循环:

$colList = @($CountCol[0], $CountCol[1], $CountCol[2])
For ($i=0; $i -lt $colList.Length; $i++) {
    $col = [int]$CountCol[$i]
    $CountCol[$i], 'Names' | Export-CSV file.csv -append -NoTypeInformation
}


不知道我是不是走对了路。

fnatzsnv

fnatzsnv1#

您可以:

$csv = Import-CSV file.csv | Select @{l='Numbers';e={$_.Numbers -as [int]}},* -Exclude Numbers

字符串
这将创建一个新的“Numbers”属性,将现有的Numbers属性转换为整数,并排除现有的Numbers属性,有效地将其替换为整数版本。

相关问题