Как я могу выводить строки, не соответствующие 'this_string', используя Get-Content и Select-String в PowerShell?
Я нашел сообщение о пользователях, которые хотели использовать grep в PowerShell. Например,
PS> Get-Content file_to_grep | Select-String "the_thing_to_grep_for"
Как вывести строки, которые НЕ this_string
?
Ответы
Ответ 1
get-content file_to_grep | select-string "^(?!the_thing_to_grep_for$)"
вернет строки, отличные от the_thing_to_grep_for
.
get-content file_to_grep | select-string "^(?!.*the_thing_to_grep_for)"
вернет строки, которые не содержат the_thing_to_grep_for
.
Ответ 2
Select-String имеет параметр NotMatch
.
get-content file_to_grep | select-string -notmatch "the_thing_to_grep_for"
Ответ 3
gc file_to_grep | ? {!$_.Contains("the_thing_to_grep_for")}
который, кстати, учитывает регистр.