Difference between revisions of "Ack"
(→Usage) |
|||
Line 3: | Line 3: | ||
==Usage== | ==Usage== | ||
''Note: Taken directly from the official website.'' | ''Note: Taken directly from the official website.'' | ||
− | |||
− | |||
− | |||
− | + | *Syntax: | |
− | + | ack [OPTION]... PATTERN [FILES] | |
− | + | ||
− | + | ||
− | + | *Help: | |
− | + | ack --help | |
− | + | ||
− | + | Search for PATTERN in each source file in the tree from cwd on down. If [FILES] is specified, then only those files/directories are checked. ack may also search STDIN, but only if no FILES are specified, or if one of FILES is "-". | |
− | + | Default switches may be specified in ACK_OPTIONS environment variable or an .ackrc file. If you want no dependency on the environment, turn it off with --noenv. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Search output | + | Example: |
+ | ack -i select | ||
+ | |||
+ | ===Searching=== | ||
+ | ;<code>-i, --ignore-case</code> : Ignore case distinctions in PATTERN | ||
+ | ;<code>-v, --invert-match</code> : Invert match: select non-matching lines | ||
+ | ;<code>-w, --word-regexp</code> : Force PATTERN to match only whole words | ||
+ | ;<code>-Q, --literal</code> : Quote all metacharacters; PATTERN is literal | ||
+ | |||
+ | ===Search output=== | ||
--line=NUM Only print line(s) NUM of each file | --line=NUM Only print line(s) NUM of each file | ||
-l, --files-with-matches | -l, --files-with-matches | ||
Line 54: | Line 53: | ||
only works with -f, -g, -l, -L or -c. | only works with -f, -g, -l, -L or -c. | ||
− | File presentation | + | ===File presentation=== |
--pager=COMMAND Pipes all ack output through COMMAND. | --pager=COMMAND Pipes all ack output through COMMAND. | ||
Ignored if output is redirected. | Ignored if output is redirected. | ||
Line 65: | Line 64: | ||
--group Same as --heading --break | --group Same as --heading --break | ||
--nogroup Same as --noheading --nobreak | --nogroup Same as --noheading --nobreak | ||
− | --[no]color Highlight the matching text (default: on unless | + | --[no]color Highlight the matching text (default: on unless output is redirected, or on Windows) |
− | + | ||
--flush Flush output immediately, even when ack is used | --flush Flush output immediately, even when ack is used | ||
− | non-interactively (when output goes to a pipe or | + | non-interactively (when output goes to a pipe or file). |
− | + | ||
− | File finding | + | ===File finding=== |
-f Only print the files found, without searching. | -f Only print the files found, without searching. | ||
The PATTERN must not be specified. | The PATTERN must not be specified. | ||
Line 77: | Line 74: | ||
--sort-files Sort the found files lexically. | --sort-files Sort the found files lexically. | ||
− | File inclusion/exclusion | + | ===File inclusion/exclusion=== |
-a, --all-types All file types searched; | -a, --all-types All file types searched; | ||
Ignores CVS, .svn and other ignored directories | Ignores CVS, .svn and other ignored directories | ||
Line 84: | Line 81: | ||
-n No descending into subdirectories | -n No descending into subdirectories | ||
-G REGEX Only search files that match REGEX | -G REGEX Only search files that match REGEX | ||
− | |||
--perl Include only Perl files. | --perl Include only Perl files. | ||
--type=perl Include only Perl files. | --type=perl Include only Perl files. | ||
Line 90: | Line 86: | ||
--type=noperl Exclude Perl files. | --type=noperl Exclude Perl files. | ||
See "ack --help type" for supported filetypes. | See "ack --help type" for supported filetypes. | ||
− | |||
--type-add TYPE=.EXTENSION[,.EXT2[,...]] | --type-add TYPE=.EXTENSION[,.EXT2[,...]] | ||
Files with the given EXTENSION(s) are recognized as | Files with the given EXTENSION(s) are recognized as | ||
Line 98: | Line 93: | ||
being of type TYPE. This replaces an existing | being of type TYPE. This replaces an existing | ||
definition for type TYPE. | definition for type TYPE. | ||
− | |||
--[no]follow Follow symlinks. Default is off. | --[no]follow Follow symlinks. Default is off. | ||
Line 111: | Line 105: | ||
/core\.\d+$/ - core dumps | /core\.\d+$/ - core dumps | ||
− | Miscellaneous | + | ===Miscellaneous=== |
--noenv Ignore environment variables and ~/.ackrc | --noenv Ignore environment variables and ~/.ackrc | ||
--help This help | --help This help | ||
Line 118: | Line 112: | ||
--thpppt Bill the Cat | --thpppt Bill the Cat | ||
− | + | ===Filetypes=== | |
− | + | The following is the list of filetypes supported by ack. You can specify a file type with the --type=TYPE format, or the --TYPE | |
− | + | format. For example, both --type=perl and --perl work. | |
− | + | ||
− | + | ||
− | The following is the list of filetypes supported by ack. | + | |
− | specify a file type with the --type=TYPE format, or the --TYPE | + | |
− | format. | + | |
− | Note that some extensions may appear in multiple types. | + | Note that some extensions may appear in multiple types. For example, .pod files are both Perl and Parrot. |
− | .pod files are both Perl and Parrot. | + | |
--[no]actionscript .as .mxml | --[no]actionscript .as .mxml | ||
Line 174: | Line 162: | ||
--[no]xml .xml .dtd .xslt .ent | --[no]xml .xml .dtd .xslt .ent | ||
--[no]yaml .yaml .yml | --[no]yaml .yaml .yml | ||
− | |||
==External links== | ==External links== |
Revision as of 01:13, 24 June 2008
ack is a tool like grep, aimed at programmers with large trees of heterogeneous source code. ack is written purely in Perl, and takes advantage of the power of Perl's regular expressions.
Contents
[hide]Usage
Note: Taken directly from the official website.
- Syntax:
ack [OPTION]... PATTERN [FILES]
- Help:
ack --help
Search for PATTERN in each source file in the tree from cwd on down. If [FILES] is specified, then only those files/directories are checked. ack may also search STDIN, but only if no FILES are specified, or if one of FILES is "-".
Default switches may be specified in ACK_OPTIONS environment variable or an .ackrc file. If you want no dependency on the environment, turn it off with --noenv.
Example:
ack -i select
Searching
-i, --ignore-case
- Ignore case distinctions in PATTERN
-v, --invert-match
- Invert match: select non-matching lines
-w, --word-regexp
- Force PATTERN to match only whole words
-Q, --literal
- Quote all metacharacters; PATTERN is literal
Search output
--line=NUM Only print line(s) NUM of each file -l, --files-with-matches Only print filenames containing matches -L, --files-without-match Only print filenames with no match -o Show only the part of a line matching PATTERN (turns off text highlighting) --passthru Print all lines, whether matching or not --output=expr Output the evaluation of expr for each line (turns off text highlighting) --match PATTERN Specify PATTERN explicitly. -m, --max-count=NUM Stop searching in each file after NUM matches -1 Stop searching after one match of any kind -H, --with-filename Print the filename for each match -h, --no-filename Suppress the prefixing filename on output -c, --count Show number of lines matching per file
-A NUM, --after-context=NUM Print NUM lines of trailing context after matching lines. -B NUM, --before-context=NUM Print NUM lines of leading context before matching lines. -C [NUM], --context[=NUM] Print NUM lines (default 2) of output context.
--print0 Print null byte as separator between filenames, only works with -f, -g, -l, -L or -c.
File presentation
--pager=COMMAND Pipes all ack output through COMMAND. Ignored if output is redirected. --nopager Do not send output through a pager. Cancels any setting in ~/.ackrc, ACK_PAGER or ACK_PAGER_COLOR. --[no]heading Print a filename heading above each file's results. (default: on when used interactively) --[no]break Print a break between results from different files. (default: on when used interactively) --group Same as --heading --break --nogroup Same as --noheading --nobreak --[no]color Highlight the matching text (default: on unless output is redirected, or on Windows) --flush Flush output immediately, even when ack is used non-interactively (when output goes to a pipe or file).
File finding
-f Only print the files found, without searching. The PATTERN must not be specified. -g REGEX Same as -f, but only print files matching REGEX. --sort-files Sort the found files lexically.
File inclusion/exclusion
-a, --all-types All file types searched; Ignores CVS, .svn and other ignored directories -u, --unrestricted All files and directories searched --[no]ignore-dir=name Add/Remove directory from the list of ignored dirs -n No descending into subdirectories -G REGEX Only search files that match REGEX --perl Include only Perl files. --type=perl Include only Perl files. --noperl Exclude Perl files. --type=noperl Exclude Perl files. See "ack --help type" for supported filetypes. --type-add TYPE=.EXTENSION[,.EXT2[,...]] Files with the given EXTENSION(s) are recognized as being of (the existing) type TYPE --type-set TYPE=.EXTENSION[,.EXT2[,...]] Files with the given EXTENSION(s) are recognized as being of type TYPE. This replaces an existing definition for type TYPE. --[no]follow Follow symlinks. Default is off.
Directories ignored by default: autom4te.cache, blib, _build, .bzr, .cdv, cover_db, CVS, _darcs, ~.dep, ~.dot, .git, .hg, ~.nib, .pc, ~.plst, RCS, SCCS, _sgbak and .svn
Files not checked for type: /~$/ - Unix backup files /#.+#$/ - Emacs swap files /[._].*\.swp$/ - Vi(m) swap files /core\.\d+$/ - core dumps
Miscellaneous
--noenv Ignore environment variables and ~/.ackrc --help This help --man Man page --version Display version & copyright --thpppt Bill the Cat
Filetypes
The following is the list of filetypes supported by ack. You can specify a file type with the --type=TYPE format, or the --TYPE format. For example, both --type=perl and --perl work.
Note that some extensions may appear in multiple types. For example, .pod files are both Perl and Parrot.
--[no]actionscript .as .mxml --[no]asm .asm .s --[no]batch .bat .cmd --[no]binary Binary files, as defined by Perl's -B op (default: off) --[no]cc .c .h .xs --[no]cfmx .cfc .cfm .cfml --[no]cpp .cpp .cc .cxx .m .hpp .hh .h .hxx --[no]csharp .cs --[no]css .css --[no]elisp .el --[no]erlang .erl --[no]fortran .f .f77 .f90 .f95 .f03 .for .ftn .fpp --[no]haskell .hs .lhs --[no]hh .h --[no]html .htm .html .shtml .xhtml --[no]java .java .properties --[no]js .js --[no]jsp .jsp .jspx .jhtm .jhtml --[no]lisp .lisp .lsp --[no]lua .lua --[no]make Makefiles --[no]mason .mas .mhtml .mpl .mtxt --[no]objc .m .h --[no]objcpp .mm .h --[no]ocaml .ml .mli --[no]parrot .pir .pasm .pmc .ops .pod .pg .tg --[no]perl .pl .pm .pod .t --[no]php .php .phpt .php3 .php4 .php5 --[no]plone .pt .cpt .metadata .cpy .py --[no]python .py --[no]ruby .rb .rhtml .rjs .rxml .erb --[no]scheme .scm --[no]shell .sh .bash .csh .tcsh .ksh .zsh --[no]skipped Files, but not directories, normally skipped by ack (default: off) --[no]smalltalk .st --[no]sql .sql .ctl --[no]tcl .tcl .itcl .itk --[no]tex .tex .cls .sty --[no]text Text files, as defined by Perl's -T op (default: off) --[no]tt .tt .tt2 .ttml --[no]vb .bas .cls .frm .ctl .vb .resx --[no]vim .vim --[no]xml .xml .dtd .xslt .ent --[no]yaml .yaml .yml