计算重复次数Powershell

时间:2014-04-04 10:29:34

标签: powershell

我有一个这样的文件:

CONTOSO-A\AAA
CONTOSO-B\BBB
CONTOSO-B\CCC
CONTOSO-A\AAA
....
....

如何计算每一行:

CONTOSO-A\AAA - 2 
CONTOSO-B\BBB - 1
CONTOSO-B\CCC - 1

4 个答案:

答案 0 :(得分:2)

Get-Content .\file.txt | Group-Object | Select-Object name, count

答案 1 :(得分:1)

我使用哈希表:

$counts = @{}

Get-Content c:\somedir\somefile.txt |
 foreach { $counts[$_]++ }

$counts

Name                           Value                                                             
----                           -----                                                             
CONTOSO-A\AAA                  2                                                                 
CONTOSO-B\CCC                  1                                                                 
CONTOSO-B\BBB                  1   

答案 2 :(得分:1)

最简单的方法可能是:

PS C:\temp> @"
CONTOSO-A\AAA
CONTOSO-B\BBB
CONTOSO-B\CCC
CONTOSO-A\AAA
"@ | set-content test.txt

get-content test.txt | group -NoElement

Count Name                     
----- ----                     
    2 CONTOSO-A\AAA            
    1 CONTOSO-B\BBB            
    1 CONTOSO-B\CCC            

使用-NoElement选项groupGroup-Object意味着您不必单独select来提取名称和计数。

要获得您要求的确切格式:

PS C:\temp> get-content test.txt | group -NoElement | % { $_.Name +" - "+$_.Count }
CONTOSO-A\AAA - 2
CONTOSO-B\BBB - 1
CONTOSO-B\CCC - 1

答案 3 :(得分:0)

$stat = @{};
cat file.txt | % { $stat["$_"] = $stat["$_"] + 1; }
$stat;