2016-08-18 45 views
1

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

我的計劃是計算日誌文件中的域帳戶。 腳本必須搜索「域*」,但我該怎麼做?

實施例的源數據:

測試請求域\ User1的測試請求域\ User1的測試請求測試域\用戶2測試

的例外結果:

  • 找到2用戶
  • 用戶1和用戶2

回答

2

我會使用一個正則表達式來捕獲所有用戶,並使用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 
+0

這是真棒!謝謝! 您能否告訴我如何使用RegEx排除以SA(Domain \ SA_Name1)開頭的服務帳戶? – LaPhi

+1

只需使用負面預測:'Domain \\(?! SA)([\ S] +)' –