Используйте фильтр Where-Object
:
$file = 'D:\Data\info.csv'
(Get-Content $file) | Where-Object {
$_ -notlike '*@LS*' -and $_ -notlike '*@gmail*'
} | Set-Content $file
Если вы хотите проверить определенное поле вместо всей строки, используйте Import-Csv
/ Export-Csv
вместо Get-Content
/ Set-Content
:
$file = 'D:\Data\info.csv'
(Import-Csv $file) | Where-Object {
$_.FOO -notlike '*@LS*' -and $_.FOO -notlike '*@gmail*'
} | Export-Csv $file -NoType
Заменить FOO
фактическим именем поля.
Вместо подстановочных совпадений вы также можете использовать строковые операции:
-not $_.FOO.Contains('@LS') -and -not $_.FOO.Contains('@gmail')
или одно регулярное выражение:
$_.FOO -notmatch '@(LS|gmail)'