我有一个这样的txt文件:
ksakks ...... ......
ksakks ...... ......
ksakks ...... ......
ksakks ...... ......
ksakks ...... ......
ksakks ...... ......
bccscd ...... ......
bccscd ...... ......
bccscd ...... ......
bccscd ...... ......
...
我必须统计线条。例如:ksakks
有6行,bccscd
只有4行。如果其中一些少于3,那么我必须保存他们的“名称”,如果有更多,那么我必须将他们的“名字”保存在一个数组中。
我该怎么做?
答案 0 :(得分:3)
您可以使用Select-Sting
提取文字,然后使用Group-Object
进行计数。像这样:
(Select-String .\yourfile.txt -Pattern '^.{6}' ).Matches | Select -ExpandProperty value | Group-Object | Select Name, Count
答案 1 :(得分:1)
要获得计数,请使用以下内容:
Get-Content "E:\Source_Test\file.txt"|Group-Object {$PSItem.Substring(0,6)} -NoElement
我使用您的数据创建了一个示例文件,并且它已正确显示。以下是供您参考的屏幕截图。
<强>输出:强>
文字档案
希望有所帮助
答案 2 :(得分:0)
试试这个
$result = get-content C:\temp\result.txt |
group { $_.substring(0, 6)} |
where Count -lt 3 |
select Name
如果您的文件始终有空格分隔符,您也可以这样做
$result = import-csv "C:\temp\result.txt" -Delimiter " " -Header h1 | group h1 | where Count -lt 3 | select Name