我有这段代码,将计算每个电子邮件地址的记录数。
csv是这样的:
PST EmailAddress
pst1 email1
pst2 email1
pst3 email1
pst4 email1
pst5 email2
pst6 email2
我代码:
$csvFile = import-csv "csvFile"
prevEmail = ""
foreach ($row in csvFile){
$currEmail = $row.emailAddress
$PSTCounter = 1
if ($prevEmail -eq $currEmail)
$PSTCounter++
elseif ($prevEmail -ne ""){
func($prevEmail, $PSTCounter)
$prevEmail = $currEmail
}
}
结果应该是:
func(email1,4)
但是这里的问题是第一个记录不匹配if语句,我不能把$prevEmail
放在foreach里面,因为它每次都会重置。如果csv是一个数组,我会使用嵌套循环,但不确定在这种情况下如何做到这一点。
我认为你需要这样的东西,由你的代码:
# import CSV file List
$csvFile = import-csv "csvFile.csv"
# take the second column and put elements in array
$emailList = @($csvFile.emailAddress)
# count occurrence
$emailList | Group-Object
输出将为:
Count Name Group
----- ---- -----
4 email1 {email1, email1, email1, email1}
1 email2 {email2}
1 email3 {email3}