38

I put this in my .ackrc:

--type-set=DUMB=*.orig
--noDUMB

... but I'm still seeing files like main.py.orig in my ack results. I tried doing --type-set=DUMB=*.*.orig too, but that didn't work either.

More info

Run from my command line (OSX Snow Leopard with :

timmfin at lorien in ~/dev/performable/rafa on landing-pages-csv-and-more!
± ack modules --python | grep '.orig'
src/rafa/main.py.orig:25:import rafa.ui.modules.helpers
src/rafa/main.py.orig:26:from rafa.ui.modules.performable_form import PerformableForm
src/rafa/main.py.orig:27:from rafa.ui.modules.page_form import PageEditForm
src/rafa/main.py.orig:28:from rafa.ui.modules.settings_form import SettingsForm
....

timmfin at lorien in ~/dev/performable/rafa on landing-pages-csv-and-more!
± cat ~/.ackrc 
--color
--sort-files
--smart-case

--type-set=sass=.sass
--type-set=coffee=.coffee

--ignore-dir=rafa/static
--ignore-dir=compiled
--ignore-dir=compressed

--ignore-dir=venv
--ignore-dir=build

timmfin at lorien in ~/dev/performable/rafa on landing-pages-csv-and-more!
± ack --version
ack 1.94
Running under Perl 5.10.0 at /usr/bin/perl
timmfin
  • 2,025
  • 1
  • 15
  • 14

4 Answers4

89

Now that ack 2.0 is available:

--ignore-file=ext:orig

, either on command line or .ackrc.

It is possible to ignore files by name. To ignore ctags generated files:

--ignore-file=is:tags

Filters for different uses can be found on documentation.

compie
  • 10,135
  • 15
  • 54
  • 78
mMontu
  • 8,983
  • 4
  • 38
  • 53
  • 2
    I wish this would be updated to the "accepted answer", this is the best way to do it now! – jgillman Apr 16 '15 at 00:40
  • 1
    You can use `match` along with a regex to match filenames and `ext` for extensions. Exclude js files `--ignore-file=ext:js`. Exclude files with name foo and bar `--ignore-file='match:/foo|bar/'`. Escape the parameter with quotes in case of regex with `|` so that shell doesn't execute it as a pipe. – xtreak Sep 26 '15 at 08:13
20

For ack version 1.x

I found this worked if I removed the asterisk (from the Ackmate wiki)

--type-set=DUMB=.orig
--noDUMB

You can see what types of file ackmate supports by running (including those you've specified in ~/.ackrc):

~/Library/Application\ Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack --help type
compie
  • 10,135
  • 15
  • 54
  • 78
robd
  • 9,646
  • 5
  • 40
  • 59
1

For ack version 1.x use the following. In my case, I want to ignore .css files. I have to set the type called SOMETHING. Then set it to --noSOMETHING to remove it from search.

 ack --type-set=SOMETHING=.css --noSOMETHING "My Bitcoin."

enter image description here

Patoshi パトシ
  • 21,707
  • 5
  • 29
  • 47
0

ack doesn't recognize .orig files in the first place. I'm guessing you are somehow invoking ack -a either from your ackrc or ACK_OPTIONS.

Andy Lester
  • 91,102
  • 13
  • 100
  • 152
  • I mainly use Ack via the AckMate plugin for Textmate (and I'm not sure what options it uses other than my .ackrc), but I also see the problem from ack on the command line. Updated my question for more detail – timmfin Mar 01 '11 at 04:40
  • Try it with --noenv and see if your .orig get ignored. Also, could your ack be aliased to ack -a? Also, use ack -f to get a list of all the files that ack is interested in. – Andy Lester Mar 01 '11 at 16:10
  • i got **ack: Invalid option in ~/.ackrc** – nyxee Jul 24 '17 at 19:19
  • When did you get that error message? What did you do in your ~/.ackrc? – Andy Lester Jul 24 '17 at 19:26