Linux

確認正則表達式邏輯或

  • December 26, 2021

如果文件名與以下任何單詞匹配,我想忽略該文件:copy、cony、coby OR tool、trol、thol 等。

這個有效:

ack -l -i --ignore-file=match:/co.y/ --ignore-file=match:/t.ol/ "mystring" _mynukelib

但我想使用單個 –ignore 參數。我嘗試使用“|” 像在普通正則表達式中一樣創建“OR”邏輯但不起作用:

ack -l -i --ignore-file=match:/co.y|t.ol/ "mystring" _mynukelib

執行邏輯 OR 的正確語法是什麼。

要讓ignore開關對多個正則表達式起作用,請使用花括號和逗號。

ack -l -i --ignore-file=match:{t.ol,co.y} "mystring" _mynukelib

這將忽略_mynukelib目錄中名稱為正則表達式的任何文件,co.y或者t.ol即使它們包含mystring.

要排除其他正則表達式(或字元串),只需將它們添加到用逗號分隔的花括號中。ack使用bash外殼的大括號擴展,這可能是您正在使用的。它以相同的方式工作。

引用自:https://unix.stackexchange.com/questions/683875