I am trying to remove all the lines from a text file that contains a partial string using the below PowerShell code:
Get-Content C:\new\temp_*.txt | Select-String -pattern "H|159" -notmatch | Out-File C:\new\newfile.txt
The actual string is H|159|28-05-2005|508|xxx
, it repeats in the file multiple times, and I am trying to match only the first part as specified above. Is that correct? Currently I am getting empty as output.
Am I missing something?
The pipe character
|
has a special meaning in regular expressions.a|b
means "match eithera
orb
". If you want to match a literal|
character, you need to escape it:Escape the | character using a backtick
Suppose you want to write that in the same file, you can do as follows: