windows - 使用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");
}
}
解决方案
从问题中我们不知道文本文件中有什么。到目前为止的方法只有在每行只有 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,如其他示例中所示。
我不经常使用边界正则表达式这个词。我担心标点符号可能很奇怪,但我的测试看起来相当不错。
让我知道你的想法。
推荐阅读
- c++ - 如何找出 Azure 管道图像内容?
- c# - 如何在文本文件中的特定位置写入文本
- c# - 如何从 Facebook 群组会员问题中获取答案?
- javascript - 这可以通过 JavaScript 中的 1 个替换语句和 1 个正则表达式来实现吗?
- r - 如何在一定长度下转换 r 中的列?
- plc - 如何使用 Python 在 plc 中将数据写入 int 值
- java - 如果没有嵌套的 switch 语句,我们可以在 Java 中创建功能菜单吗?
- sql - SQL:有没有办法让检查约束引用另一个表
- c++ - 如何将 chrono::steady_clock::duration 转换为 ostream?
- vim - Vimrc 设置允许光标在空白处自由移动