UNIX ack: Difference between revisions
Line 7: | Line 7: | ||
Next ack searches through text and not though binary files. | Next ack searches through text and not though binary files. | ||
== Files == | |||
To find Javascript-files in all (sub)-directories. | |||
The -f command is used to show the result and should be ignored when finding text inside the selection. | |||
ack -f --type=script --type-set script=.js | |||
Another example: Find all XLS-Files (Excel files) with old (.xls) and ne (.xlsx) extension. | |||
ack -f --type=excel --type-set excel=.xls | |||
So the general expression: | |||
ack -f --type=<theType> --type-set <TheType>=<extensions>,[extension] | |||
== Predefined types == | == Predefined types == |
Revision as of 22:01, 1 December 2012
ACK [1] is a 99% replacement for the grep and find combination. But not all commands are as obvious unfortunately.
Is ack better than find and grep. Yes and No. The trick of ack is it only search for the files it have to look for. If that's not the case find and grep are much faster. Please remember ack is written in Perl, find and grep are written in C.
Next ack searches through text and not though binary files.
Files
To find Javascript-files in all (sub)-directories. The -f command is used to show the result and should be ignored when finding text inside the selection.
ack -f --type=script --type-set script=.js
Another example: Find all XLS-Files (Excel files) with old (.xls) and ne (.xlsx) extension.
ack -f --type=excel --type-set excel=.xls
So the general expression:
ack -f --type=<theType> --type-set <TheType>=<extensions>,[extension]
Predefined types
ack --php wfHook
Searches through all the php-files for the occurence of the text 'wfHook'.
Text files
ack UserName --type=text WikiTrace*.txt
Searches the txt files WikiTrace.txt for the occurence of Username.
Codeses
Use -f for working with big codesets
Ack does more than search files. ack -f --perl will create a list of all the Perl files in a tree, ideal for sending into xargs. For example:
# Change all "this" to "that" in all Perl files in a tree. ack -f --perl | xargs perl -p -i -e's/this/that/g'
See also
- UNIX Command Reference Strings, search a binary (dump) for printable Strings.
Reference
- ↑ BetterThanGrep, ACK home page. ack is a tool like grep, optimized for programmers.