Annotation of coherent/a/usr/man/COHERENT/cgrep, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: cgrep                        Command                        cgrep
                      4: 
                      5: 
                      6: 
                      7: 
                      8: Pattern search for C source programs
                      9: 
                     10: ccggrreepp [-ccllnnssAA] [-rr _n_e_w] _e_x_p_r_e_s_s_i_o_n _f_i_l_e ...
                     11: 
                     12: ccggrreepp is a  string-search utility.  It resembles its cousins ggrreepp
                     13: and eeggrreepp, except that it is specially designed to be used with C
                     14: source files.  It checks all C identifiers against _e_x_p_r_e_s_s_i_o_n and
                     15: prints all lines in which it  finds a match.  ccggrreepp allows you to
                     16: search for  a variable named  `i' without finding  every `if' and
                     17: `int' in your program.  ccggrreepp defines an ``identifier'' to be any
                     18: variable  name  or  C  keyword.   _e_x_p_r_e_s_s_i_o_n  can  be  a  regular
                     19: expression; if it  includes wildcard characters or `|'s, you must
                     20: ``quote it''  to protect it against being  modified by the shell.
                     21: For details on the  expressions that ccggrreepp can recognize, see the
                     22: Lexicon entry for eeggrreepp.
                     23: 
                     24: ccggrreepp tests names that include the `.' and `->' operators against
                     25: _e_x_p_r_e_s_s_i_o_n. Thus, to look for ppttrr->vvaall, type:
                     26: 
                     27: 
                     28:         cgrep "ptr->val" x.c
                     29: 
                     30: 
                     31: This finds  ppttrr->vvaall even if it contains  spaces, comments, or is
                     32: spread across  lines.  If it  is spread across lines,  it will be
                     33: reported  on the  line that  contains the  last token.   The only
                     34: exception is if you include the  -AA option, in which case it will
                     35: be reported on the line  which contains the first token.  This is
                     36: to simplify MicroEMACS macros, as will be described below.
                     37: 
                     38: To find ssttrruuccttuurree.mmeemmbbeerr, type:
                     39: 
                     40: 
                     41:         cgrep "structure\.member"
                     42: 
                     43: 
                     44: because `.' in a regular expression matches any character.
                     45: 
                     46: Do not  include spaces in any pattern.   Only identifiers and `.'
                     47: or `->'  between identifiers are  included in the  tokens checked
                     48: for pattern-matching.
                     49: 
                     50: ***** Command-line Options *****
                     51: 
                     52: ccggrreepp recognizes the following command-line options:
                     53: 
                     54: -cc   Print  all  comments  in  each  _f_i_l_e.  This  form  takes  no
                     55:      expression.
                     56: 
                     57: -ll   List  only the  names of  the files  in which  _e_x_p_r_e_s_s_i_o_n is
                     58:      found.
                     59: 
                     60: -nn   Prefix each line in  which _e_x_p_r_e_s_s_i_o_n is found with its line
                     61:      number in the file.
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: cgrep                        Command                        cgrep
                     70: 
                     71: 
                     72: 
                     73: 
                     74: -rr   Replace all  expression matches  with _n_e_w.  This  option may
                     75:      not be  used with any  others, and it can  only match simple
                     76:      tokens, not  items like ppttrr->vvaall.   When -rr is  used and the
                     77:      input is ssttddiinn, a new file will always be created as ssttddoouutt.
                     78: 
                     79: -ss   Print  all  strings   in  each  _f_i_l_e.  This  form  takes  no
                     80:      expression.
                     81: 
                     82: -AA   Write  all  lines  in  which  _e_x_p_r_e_s_s_i_o_n  is  found  into  a
                     83:      temporary file.  Then, call MicroEMACS with its error option
                     84:      to  process  the  source  file,  with  the contents  of  the
                     85:      temporary file  serving as  an ``error'' list.   This option
                     86:      resembles  the -AA  option to  the cccc  command, and  lets you
                     87:      build a MicroEMACS  script to make systematic changes to the
                     88:      source  file.  To  exit  MicroEMACS and  prevent ccggrreepp  from
                     89:      searching further, <ccttrrll-UU> <ccttrrll-XX> <ccttrrll-CC>.
                     90: 
                     91: ***** Examples *****
                     92: 
                     93: The command
                     94: 
                     95: 
                     96:         cgrep tmp *.c
                     97: 
                     98: 
                     99: will  find  the  variable  name  ttmmpp,  but not  ttmmppnnaammee,  or  any
                    100: occurrence of ttmmpp in a string or comment.
                    101: 
                    102: The script
                    103: 
                    104: 
                    105:         cgrep -c < myfile.c | wc -l
                    106: 
                    107: 
                    108: count the lines of comments in mmyyffiillee.cc.
                    109: 
                    110: The command
                    111: 
                    112: 
                    113:         cgrep "x|abc|d" *.c
                    114: 
                    115: 
                    116: will find  xx, aabb, dd.  Note this is  a regular expressions  with a
                    117: surrounding  ``^(  )$'' which  is  applied  to every  identifier.
                    118: Thus, rreegg* will not match rreeggiisstteerr, but rreegg.* will.
                    119: 
                    120: ***** See Also *****
                    121: 
                    122: ccoommmmaannddss, eeggrreepp, ggrreepp, mmee
                    123: 
                    124: 
                    125: 
                    126: 
                    127: 
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.