Как я могу выводить строки, не соответствующие '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")}

который, кстати, учитывает регистр.