使用 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 引用。對於任何嘗試將 "> \" 作為參數傳遞的程序,都會遇到此問題。

相關內容