正規表現論理ORの確認

正規表現論理ORの確認

ファイル名が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を実行する正しい構文は何ですか?

答え1

ignore複数の正規表現に対してこのスイッチを機能させるには、中かっことコンマを使用します。

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

正規表現名を含む_mynukelibディレクトリ内のすべてのファイルは。co.yt.olmystring

他の正規表現(または文字列)を除外するには、カンマで区切られた中括弧内に追加します。おそらくあなたが使用しているackシェルの中括弧拡張を使用してください。bash同じように動作します。

関連情報