I’m not that knowledgable about the command line and controlling a server with it. Over the years I have picked up a few bits – I use nano a lot for editing files, and I like to use grep to search my code.
Or at least I used to.
The other day I was trying to work out how something worked in WordPress, and I was using grep to search the WordPress code base – except it wasn’t traversing the directory tree properly. So I asked on Twitter if I was doing something wrong. I got this as a reply…
— Simon Prosser (@prossorguk) January 30, 2013
So I checked out BetterThanGrep.com a quick read and it looked like what I need. Ack is a replacement for grep designed specifically for programmers.
Installing it was easy – just a single line of code to grab a Perl script from an external website (obviously caution is recommended when doing this sort of thing).
curl http://betterthangrep.com/ack-standalone > ~/bin/ack && chmod 0755 !#:3
How To Use Ack
Using ack is super simple. All you have to do is navigate to the directory you want to search and then type
To go with this there are a bunch of additional parameters that allow you to display and filter the results in the way that works best for you. For me I have only used a few of the parameters so far – I’ve listed them below. You can read the rest of the commands in the documentation.
Display lines either side of result
ack -A 5 -B 5 'search_query'
The A and B options display the matched line of code, and the lines before and after – with the number of them limited by the size added after the option. In the example above I limited it to 5 lines either side of the result.
Display files only and not results
ack -l 'search_query'
The l option changes the output so that it only displays the filenames of the files that were found to have the search query. I used this to narrow down my search so that I could work out what directory my problem files were in.