如何使用powershell计算csv中每行的逗号数?

时间:2016-05-06 04:07:54

标签: csv powershell

如何使用PowerShell计算csv文件中每行的逗号数? 这样做的目的是与标题行中的逗号数进行比较。如果不相同,则显示行号。我曾尝试在线搜索但无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。但是,如果您在内部使用逗号引用值,则需要编写正则表达式以进行计数或至少删除误报。

我正在使用标题(line1)作为应该有多少逗号的基线。

###########SAMPLE####
$data = @"
header1,header2,header3
value1,value2,value3
value1,value2,,value3
value1,,value2,value3
value1,value2,value3
"@ -split "`n"
######################

$data = Get-Content myfile.csv

#Count in header
$header = $data[0].Split(",").Count
#Line counter
$i = 1

#Find lines with less or more commas
$data | ForEach-Object { 
    $c = $_.Split(",").Count
    if($c -ne $header) { "Line $i - $c commas" }
    $i++
}