Подтвердить что ты не робот

Есть ли в PowerShell "строка не содержит" командлет или синтаксис?

В PowerShell я читаю в текстовом файле. Затем я делаю Foreach-Object над текстовым файлом и меня интересуют только строки, которые НЕ содержат строк, находящихся в $arrayOfStringsNotInterestedIn.

Какой синтаксис для этого?

   Get-Content $filename | Foreach-Object {$_}
4b9b3361

Ответ 1

Если $arrayofStringsNotInterestedIn - это [массив], вы должны использовать -notcontains:

Get-Content $FileName | foreach-object { `
   if ($arrayofStringsNotInterestedIn -notcontains $_) { $) }

или лучше (IMO)

Get-Content $FileName | where { $arrayofStringsNotInterestedIn -notcontains $_}

Ответ 2

Вы можете использовать оператор -notmatch для получения строк, которые не имеют интересующих вас символов.

     Get-Content $FileName | foreach-object { 
     if ($_ -notmatch $arrayofStringsNotInterestedIn) { $) }

Ответ 3

Чтобы исключить строки, содержащие любую из строк в $arrayOfStringsNotInterestedIn, вы должны использовать:

(Get-Content $FileName) -notmatch [String]::Join('|',$arrayofStringsNotInterestedIn)

Код, предложенный Крисом, работает только в том случае, если $arrayofStringsNotInterestedIn содержит полные строки, которые вы хотите исключить.