The cgrep package

[Tags: gpl, program]

Cgrep: a context-aware grep for source codes

[Skip to ReadMe]


Versions6.4, 6.4.1, 6.4.2, 6.4.3,, 6.4.4, 6.4.5, 6.4.6, 6.4.7, 6.4.8, 6.4.9, 6.4.10, 6.4.11, 6.4.12, 6.4.13, 6.4.14, 6.4.15, 6.4.16, 6.4.17, 6.4.18, 6.4.19, 6.4.20, 6.4.21, 6.4.22, 6.5.0, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.6, 6.5.7, 6.5.8, 6.5.9, 6.5.10, 6.5.11, 6.5.12, 6.5.13, 6.5.15, 6.6, 6.6.1
Change logNone available
Dependenciesansi-terminal (>=0.5), array (>=0.4), async (>=2.0), base (<5.0), bytestring (>=0.10), cmdargs (>=0.10), containers (>=0.5), directory (>=1.2), dlist (>=0.3), either (>=4.0), filepath (>=1.3), ghc-prim (>=0.2), mtl (>=2.0), process, regex-base (>=0.90), regex-pcre (>=0.90), regex-posix (>=0.90), safe (>=0.3), split (>=0.2), stm (>=2.1), stringsearch (>=0.3), transformers, unix-compat (>=0.4), unordered-containers (>=0.1) [details]
AuthorNicola Bonelli
MaintainerNicola Bonelli <>
Home page
UploadedFri Jan 29 17:14:47 UTC 2016 by NicolaBonelli
DistributionsArch:6.6.1, NixOS:6.6.1
Downloads3827 total (162 in last 30 days)
0 []
StatusDocs pending
Build status unknown [no reports yet]


Maintainers' corner

For package maintainers and hackage trustees

Readme for cgrep-6.6.1

CGrep: a context-aware grep for source codes Hackage


Cgrep 6.6.1. Usage: cgrep [OPTION] [PATTERN] files...

cgrep [OPTIONS] [ITEM]


-f --file=FILE             Read PATTERNs from file (one per line)
-w --word                  Force word matching
-p --prefix                Force prefix matching
-s --suffix                Force suffix matching
-e --edit                  Use edit distance
-G --regex                 Use regex matching (posix)
-P --regex-pcre            Use regex matching (pcre)
-i --ignore-case           Ignore case distinctions

Context filters (generic):

-c --code                  Enable search in source code
-m --comment               Enable search in comments
-l --literal               Enable search in string literals

Semantic (generic):

-S --semantic              "code" pattern: _, _1, _2... (identifiers), $,
                           $1, $2... (optionals), ANY, KEY, STR, CHR, LIT,
                           NUM, HEX, OCT, OR. -> e.g. "_1(_1 && \$)" search
                           for move constructors, "struct OR class _ { OR :
                           OR <" search for a class declaration

C/C++ language:

  --identifier            Identifiers
  --keyword               Keywords
  --directive             Preprocessing directives
  --header                Headers names
  --number                Literal numbers
  --string                Literal strings
  --char                  Literal chars
  --oper                  Operators

Output control:

   --max-count=INT         Stop search in files after INT matches
   --language-filter=ITEM  Specify languages. ie: Cpp, +Haskell, -Makefile
   --language-force=ITEM   Force the language
   --language-map          Lists the language mappings
   --magic-filter=ITEM     Use unix magic as file-filter
-v --invert-match          Select non-matching lines
   --multiline=INT         Enable multi-line matching
-r --recursive             Enable recursive search (don't follow symlinks)
   --prune-dir=ITEM        Do not descend into dir
-R --deference-recursive   Recursive, follow symlinks

Output format:

   --show-match            Show list of matching tokens
   --color                 Use colors to highlight the matching strings
   --no-color              Do not use colors (override configAutoColor)
-h --no-filename           Suppress the file name prefix on output
-N --no-linenumber         Suppress the line number on output lines
   --count                 Print only a count of matching lines per file
   --filename-only         Print only the name of files containing matches
   --format=STRING         Format output. Var: #f #n #l #t ## #, #; #0
                           #1... e.g. "#f:#n #0 #1"
   --json                  Format output as json object
   --xml                   Format output as xml document


-j --jobs=INT              Number of jobs
   --cores=INT             Number of physical processors utilized
   --chunk=INT             Specify the length of chunks
-a --asynch                Process chunks asynchronously


-d --debug=INT             Debug level: 1, 2 or 3
-n --no-quick              Disable quick-search mode
-? --help                  Display help message
-V --version               Print version information
   --numeric-version       Print just the version number