【发布时间】:2016-08-18 13:53:20
【问题描述】:
如何使用 PowerShell 计算文本文件中的特定字符串? (我知道如何计算正常的特定字符串)
我的计划是在日志文件中计算域帐户。 脚本必须搜索“域*”,但我该怎么做?
示例源数据:
测试请求域\User1 测试请求域\User1 测试请求测试域\User2 测试
异常结果:
- 找到2个用户
- 用户 1 和用户 2
【问题讨论】:
标签: powershell
如何使用 PowerShell 计算文本文件中的特定字符串? (我知道如何计算正常的特定字符串)
我的计划是在日志文件中计算域帐户。 脚本必须搜索“域*”,但我该怎么做?
示例源数据:
测试请求域\User1 测试请求域\User1 测试请求测试域\User2 测试
异常结果:
【问题讨论】:
标签: powershell
我会使用正则表达式来捕获所有用户,并使用 Select-Object cmdlet 和 -unique 开关来获取唯一列表:
$yourString = 'Test request Domain\User1 Test Request Domain\User1 Test Request Test Domain\User2 Test'
$result = @([regex]::Matches($yourString, 'Domain\\([\S]+)') | ForEach-Object { $_.Groups[1].Value } | select -Unique)
Write-Host "Found $($result.count) User"
Write-Host "$($result -join ' and ')"
输出:
Found 2 User
User1 and User2
【讨论】:
Domain\\(?!SA)([\S]+)