检查特定列中 CSV 中的值是否为空
Check if value in CSV in specific colum is empty
我有一个包含 3 列(Header1、Header2、Header3)的 CSV 文件,我需要检查第 2 列(header2)中每一行的值是否为空,如果是,则检查第 3 列(Header 3)中的值需要复制到同一行的第 2 列。我希望它是清楚的。
输入数据
Header1,Header2,Header3,
ABC,123,123,
AXY,,456,
XYZ,,152,
ASD,528,,
输出
Header1,Header2,Header3,
ABC,123,123,
AXY,456,456,
XYZ,152,152,
ASD,528,,
我厌倦了下面的代码,但它不起作用
$csvFile1 = Import-Csv -Path "D:\AA_servers.txt" -Delimiter ","
$ht = @{}
foreach ($item in $csvFile1) {
if ([string]::IsNullOrEmpty($item.Header2)) {
$ht[$item.Header2] = $line.Header3
}
}
$csvFile1 | Export-Csv -Path "D:\AA_servers.txt" -Delimiter ";" -NoTypeInformation
感谢支持
我不知道 $ht 变量的用途是什么。
但是转储使代码工作。
概念验证:
$csv = ConvertFrom-Csv @'
Header1,Header2,Header3
ABC,123,124
AXY,,456
XYZ,,152
ASD,528,
'@
foreach ($row in $csv) {
if ([string]::IsNullOrEmpty($row.Header2)) {
$row.Header2 = $row.Header3
}
}
$csv
输出:
Header1 Header2 Header3
------- ------- -------
ABC 123 124
AXY 456 456
XYZ 15 15
ASD 528
实际使用:
(只需更改路径即可。)
$csv = Import-Csv -Path 'D:\AA_servers.txt'
foreach ($row in $csv) {
if ([string]::IsNullOrEmpty($row.Header2)) {
$row.Header2 = $row.Header3
}
}
$csv | Export-Csv -Path 'D:\AA_servers.txt' -NoTypeInformation
我有一个包含 3 列(Header1、Header2、Header3)的 CSV 文件,我需要检查第 2 列(header2)中每一行的值是否为空,如果是,则检查第 3 列(Header 3)中的值需要复制到同一行的第 2 列。我希望它是清楚的。
输入数据
Header1,Header2,Header3,
ABC,123,123,
AXY,,456,
XYZ,,152,
ASD,528,,
输出
Header1,Header2,Header3,
ABC,123,123,
AXY,456,456,
XYZ,152,152,
ASD,528,,
我厌倦了下面的代码,但它不起作用
$csvFile1 = Import-Csv -Path "D:\AA_servers.txt" -Delimiter ","
$ht = @{}
foreach ($item in $csvFile1) {
if ([string]::IsNullOrEmpty($item.Header2)) {
$ht[$item.Header2] = $line.Header3
}
}
$csvFile1 | Export-Csv -Path "D:\AA_servers.txt" -Delimiter ";" -NoTypeInformation
感谢支持
我不知道 $ht 变量的用途是什么。
但是转储使代码工作。
概念验证:
$csv = ConvertFrom-Csv @'
Header1,Header2,Header3
ABC,123,124
AXY,,456
XYZ,,152
ASD,528,
'@
foreach ($row in $csv) {
if ([string]::IsNullOrEmpty($row.Header2)) {
$row.Header2 = $row.Header3
}
}
$csv
输出:
Header1 Header2 Header3
------- ------- -------
ABC 123 124
AXY 456 456
XYZ 15 15
ASD 528
实际使用:
(只需更改路径即可。)
$csv = Import-Csv -Path 'D:\AA_servers.txt'
foreach ($row in $csv) {
if ([string]::IsNullOrEmpty($row.Header2)) {
$row.Header2 = $row.Header3
}
}
$csv | Export-Csv -Path 'D:\AA_servers.txt' -NoTypeInformation