首页 > 解决方案 > 使用powershell在.txt文件中查找出现次数最多的字符串

问题描述

我目前正在 powershell 中进行学校作业,我必须显示超过 6 个字符的单词,其中 txt 文件中出现次数最多。我尝试了这段代码,但它返回了每个单词的出现次数,这不是我需要做的。请帮忙。

$a= Get-Content -Path .\germinal_split.txt
foreach($object in $a) 
{
if($object.length -gt 6){
$object| group-object | sort-object -Property "Count" -Descending | ft -Property ("Name", "Count");
}
 }

标签: windowspowershellcountscripting

解决方案


从问题中我们不知道文本文件中有什么。到目前为止的方法只有在每行只有 1 个单词的情况下才有效。我认为下面的东西无论如何都会起作用:

$Content = (Get-Content 'C:\temp\test12-01-19' -raw) -Split "\b"

$content | 
Where-Object{$_.Length -ge 6} |
Group-Object -Property Length -NoElement | Sort-Object count | Format-Table -AutoSize

在这里,我使用 -Raw 参数将文件作为单个字符串读取。然后我在单词边界上分裂。仍然使用 Where 过滤掉少于 6 个字符的单词。现在对长度属性使用 Group-Object,如其他示例中所示。

我不经常使用边界正则表达式这个词。我担心标点符号可能很奇怪,但我的测试看起来相当不错。

让我知道你的想法。


推荐阅读