簡體   English   中英

使用powershell在.txt文件中查找出現次數最多的字符串

[英]find string with most occurrences in .txt file with powershell

我目前正在 powershell 中完成一項學校作業,我必須顯示 txt 文件中出現次數最多的 6 個字符的單詞。 我試過這段代碼,但它返回每個單詞的出現次數,這不是我需要做的。 請幫忙。

$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,如其他示例中所示。

我不經常使用“邊界正則表達式”這個詞。 我擔心標點符號可能很奇怪,但我的測試看起來不錯。

讓我知道你的想法。

您可以執行以下操作:

$a = Get-Content -Path .\germinal_split.txt
$a | Where Length -gt 6 | Group-Object -NoElement | Sort-Object Count -Descending

解釋:

Where指定Length屬性的條件。 Group-Object -NoElement不包含包含實際對象數據的Group屬性。 默認情況下, Sort-Object按升序對分組的輸出進行排序。 此處將Count屬性指定為 sorted 屬性,並且-Descending參數反轉默認排序順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM