合并来自多个文件的所有内容,找到匹配的字符串并获取每行的计数

时间:2015-04-20 23:17:50

标签: powershell text powershell-v2.0

我知道如何获取数据并使用某种模式搜索数据。但这不是我需要的。

Get-ChildItem -recurse -Filter *.xml | Get-Content | Select-String -pattern "something here"  

我正在搜索100个GPO xml文件,我们正在尝试删除一遍又一遍执行相同操作的GPO。我想找到独特的价值观并将它们组合成一个快乐的gpo并摆脱所有多余的价值观。

我的目标:

1)从100个子文件夹中获取所有* .xml文件中的所有信息,并将它们合并为一个文件。

2)查找包含相同字符串的所有行并获取该字符串的计数。我需要对组合文件中的所有字符串进行计数。

3)我的目标是找到唯一的行并将它们保存到文件中,以供进一步使用。

1 个答案:

答案 0 :(得分:2)

这是使用Hashtable的快速而肮脏的方法。由于Hashtable setter会执行"更新或创建",您最终会得到一个不同的列表:

$ht = @{}
Get-ChildItem -recurse -Filter *.xml | Get-Content | %{$ht[$_] = $true}
$ht.Keys

编辑:刚刚看到你想要的数字。你可以这样做:

$ht = @{}
Get-ChildItem -recurse -Filter *.xml | Get-Content | %{$ht[$_] = $ht[$_]+1}
$ht

要导出为CSV:

$ht.GetEnumerator() | select key, value | Export-Csv D:\output.csv