1

I am having a file which has following contents

change sets:
  promotion level: INITIAL
  depends on: 
    GEESF_R2.1.0.9.5179@\My_PVOB (MES@\My_PVOB)
    My_2.1.0.13.4875@\My_PVOB (Notification@\My_PVOB)
    MyComponents_8_8_2011.6859@\My_PVOB (SQLReporting@\My_PVOB)
    My_2.1.0.13.7098@\My_PVOB (Support@\My_PVOB)

I wanted to read the contents which has pattern @\My_PVOB)

So i write select-string option like this.

Select-string -pattern "@\My_PVOB)" -path "C:\Baselines.txt"

But i am getting following issue

parsing "@\My_PVOB)" - Unrecognized escape sequence \M.

Even if change the pattern as

Select-string -pattern "@\\My_PVOB)" -path "c:\Baselines.txt"

I am getting following error

 "@\\My_PVOB)" - Too many )'s.

Any idea how to solve it?

2 Answers 2

4

You can use the Escape method to replace metacharacters with their escape codes:

PS> $pattern = [regex]::Escape('@\My_PVOB)')
PS> $pattern
@\\My_PVOB\)

PS> Select-String -Path c:\Baselines.txt -Pattern $pattern 
Sign up to request clarification or add additional context in comments.

1 Comment

Or use -SimpleMatch to avoid regex evaluation altogether.
3

The round bracket is a special character, so you should escape it:

Select-string -pattern "@\\My_PVOB\)" -path "c:\Baselines.txt"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.