通常のgrep
コマンドでは、--exclude
オプション(ここで詳しく説明します: 特定のファイルをgrepしないようにgrep --exclude /-include構文を使用 )。これにより、grepするときに特定のファイルを無視できます。
Ackの--type
オプションは、ファイルを除外したい場合の95%を処理しますが、特定のファイルを除外した場合は(私が知る限り)処理しません。他のすべてのJSファイルの内容が(1行で)含まれているコンパイル済みJSファイルがあるので、anythingその巨大なコンパイル済みファイルの内容全体を返します。
私はackをあきらめてgrepに戻る必要があるのは嫌ですが、本当に迷惑です。特定のファイルをack検索から除外する方法があると誰かが教えてください。
いいえ、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 メーリングリストに参加することもできます。私たちはかなり反応があります。
Ack 2.0を使用して単一のファイルを無視するには、-ignore-fileフラグにフィルター仕様を指定します。
--ignore-file=is:cljout.js
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
その後、そのファイルから不要なものを削除します。
また、ack2.0で知っておくと良いことは、これらのオプションを .ackrc
file 頻繁にファイルをフィルタリングする必要がある場合。
特定のフォルダを除外する場合は、次のコマンドが役立つことがあります。
ack keywords --ignore-dir folder_name
man ack
はさらに詳細を提供します:)
-[no] ignore-dir = DIRNAME、-[no] ignore-directory = DIRNAME
--ignore-file = FILTERTYPE:FILTERARGS