我有一个这样的文件:
CONTOSO-A\AAA
CONTOSO-B\BBB
CONTOSO-B\CCC
CONTOSO-A\AAA
....
....
如何计算每一行:
CONTOSO-A\AAA - 2
CONTOSO-B\BBB - 1
CONTOSO-B\CCC - 1
答案 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
选项group
或Group-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;