【问题标题】:Count specific strings with wildcard使用通配符计算特定字符串
【发布时间】:2016-08-18 13:53:20
【问题描述】:

如何使用 PowerShell 计算文本文件中的特定字符串? (我知道如何计算正常的特定字符串)

我的计划是在日志文件中计算域帐户。 脚本必须搜索“域*”,但我该怎么做?

示例源数据:

测试请求域\User1 测试请求域\User1 测试请求测试域\User2 测试

异常结果:

  • 找到2个用户
  • 用户 1 和用户 2

【问题讨论】:

    标签: powershell


    【解决方案1】:

    我会使用正则表达式来捕获所有用户,并使用 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
    

    【讨论】:

    • 这太棒了!谢谢!您能告诉我如何使用 RegEx 排除以 SA (Domain\SA_Name1) 开头的服务帐户吗?
    • 只使用负前瞻:Domain\\(?!SA)([\S]+)
    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 2014-01-30
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 2012-08-07
    • 1970-01-01
    相关资源
    最近更新 更多