9

I am looking for lines that literally have a greater than character (a ">") followed by a space followed by a backslash character (a "\") i.e., a line with this: > \

I thought escaping would allow this, and for the greater-than it does:

  $ ack-grep "\> "

returns lines that have "> " in them.

But when I try to escape the backslash as well I get:

  $ ack-grep "\> \\"

ack-grep: Invalid regex '\> \':
Trailing \ in regex m/\> /

4 Answers4

6

Wow, I was so close ... single quotes:

$ ack-grep '\> \\'

Figured this out after confirming that my regex match was valid using: http://regexpal.com/ and just happened to have had single quotes from trying something else.

5

This also works:

$ ack-grep '> \\'

and so does:

$ ack-grep "> \\\\"

The greater-than doesn't need to be escaped.

1

To search literal strings, use the literal option:

ack-grep --literal '> \'
0

Please note that the issue here is not with ack but with the shell quoting. You'd have this problem with any program that you were trying to pass in "> \" as an argument.