web-dev-qa-db-ja.com

特定のファイルをack(ack-grep)からどのように除外しますか?

通常のgrepコマンドでは、--excludeオプション(ここで詳しく説明します: 特定のファイルをgrepしないようにgrep --exclude /-include構文を使用 )。これにより、grepするときに特定のファイルを無視できます。

Ackの--typeオプションは、ファイルを除外したい場合の95%を処理しますが、特定のファイルを除外した場合は(私が知る限り)処理しません。他のすべてのJSファイルの内容が(1行で)含まれているコンパイル済みJSファイルがあるので、anythingその巨大なコンパイル済みファイルの内容全体を返します。

私はackをあきらめてgrepに戻る必要があるのは嫌ですが、本当に迷惑です。特定のファイルをack検索から除外する方法があると誰かが教えてください。

51
machineghost

いいえ、ack 1.xでは1つのファイルを除外できません。 ack 2. では、できます。 ack 2.0 現在、最初のアルファ版でした 現在、ackの現在の推奨バージョンです。

縮小されたJavascriptファイルの特定のケースに関して、どのバージョンのackを使用していますか? ack 1.96は拡張に基づいて縮小されたJavaScriptを無視するべきです。拡張機能のチェックが機能しない場合は、単一のPerlプログラムであるため、おそらくack自体をハックする可能性があります。あなたはハックすることができますis_searchable 関数。

Ack 2.0では、ソースコードではないため、たとえば500文字を超える行は無視されます。

ack-users メーリングリストに参加することもできます。私たちはかなり反応があります。

10
Andy Lester

Ack 2.0を使用して単一のファイルを無視するには、-ignore-fileフラグにフィルター仕様を指定します。

--ignore-file=is:cljout.js

99
jbouwman

ack --create-ackrcを実行すると、縮小されたjavascript、css、node_modulesや.gitなどのディレクトリなどの一般的なファイルのプリセット全体が出力されます。非常に便利!

次に、縮小されたjsオプションを示します。

# minified Javascript
--ignore-file=match:/[.-]min[.]js$/
--ignore-file=match:/[.]js[.]min$

これを.ackrcに保存する場合は、次を実行します。

ack --create-ackrc >> ~/.ackrc

その後、そのファイルから不要なものを削除します。

10
Rimian

また、ack2.0で知っておくと良いことは、これらのオプションを .ackrc file 頻繁にファイルをフィルタリングする必要がある場合。

1
akotian

特定のフォルダを除外する場合は、次のコマンドが役立つことがあります。

ack keywords --ignore-dir folder_name

man ackはさらに詳細を提供します:)

-[no] ignore-dir = DIRNAME、-[no] ignore-directory = DIRNAME

--ignore-file = FILTERTYPE:FILTERARGS

1
liuyihe