2016-08-18 4 views
1

Как я могу подсчитать конкретные строки в текстовом файле с помощью PowerShell? (Я знаю, как я могу считать нормальные конкретные строки)Считать конкретные строки с помощью подстановочных знаков

Мой план состоит в том, чтобы подсчитывать учетные записи домена в файле журнала. Сценарий должен искать «Домен *», но как я могу это сделать?

Пример Источник данных:

запроса Тест домен \ User1 Тест Запрос Домен \ User1 Тест Запрос Тест домен \ Пользователь2 Тест

Освобожденные Результат:

  • Найдено 2 Пользователь
  • Пользователь1 и Пользователь2

ответ

2

Я хотел бы использовать регулярное выражение, чтобы захватить все пользователь и использовать Select-Object Командлет с переключателем -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

Это потрясающе! Благодаря! Можете ли вы рассказать мне, как я могу исключить учетные записи службы, начиная с SA (Domain \ SA_Name1) с помощью RegEx? – LaPhi

+1

Просто используйте отрицательный lookahead: 'Domain \\ (?! SA) ([\ S] +)' –

Смежные вопросы