使用 ack-grep 搜索文字“> \”

使用 ack-grep 搜索文字“> \”

我正在寻找字面上有一个大于号(“>”),后跟一个空格,后跟一个反斜杠字符(“\”)的行,即包含以下行: > \

我认为转义可以允许这一点,并且对于大于它的情况也是如此:

  $ ack-grep“\>”

返回包含“>”的行。

但是当我尝试逃避反斜杠时,我得到了:

  $ ack-grep "\> \\"

ack-grep:无效的正则表达式‘\> \’:
正则表达式 m/> / 中的尾随 \

答案1

哇,我太接近了......单引号:

$ ack-grep '\> \\'

在确认我的正则表达式匹配有效后,我找到了答案: http://regexpal.com/ 并且恰巧尝试了其他东西后就得到了单引号。

答案2

这也有效:

$ ack-grep '> \\'

还有:

$ ack-grep "> \\\\"

大于号不需要转义。

答案3

要搜索文字字符串,请使用文字选项:

ack-grep --literal '> \'

答案4

请注意,这里的问题不是 ack,而是 shell 引用。如果您尝试将“> \”作为参数传入任何程序,都会遇到此问题。

相关内容