grep是在shell中比较常用的工具,常用的选项有:
-c只输出匹配行的计数,例如:
[liuqi@ljjk liuqi]$ grep -c "get" /usr/include/ncurses.h
57
-i不区分大小写(只适用于单字符),例如:
[liuqi@ljjk liuqi]$ grep -i "GET" /usr/include/ncurses.h
#include <wchar.h> /* ...to get mbstate_t, etc. */
#ifdef NCURSES_WGETCH_EVENTS
extern NCURSES_EXPORT(int) wgetch_events(WINDOW *, _nc_eventlist *); /* experimental */
extern NCURSES_EXPORT(int) wgetnstr_events(WINDOW *,char *,int,_nc_eventlist *);/* experimental */
#endif /* NCURSES_WGETCH_EVENTS */
extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *); /* generated */
extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */
extern NCURSES_EXPORT(int) getch (void); /* generated */
extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */
extern NCURSES_EXPORT(int) getstr (char *); /* generated */
extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */
extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */
extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */
extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */
extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */
extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */
extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */
extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *); /* implemented */
extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *); /* implemented */
extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *); /* implemented */
extern NCURSES_EXPORT(int) ungetch (int); /* implemented */
extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *); /* generated */
extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */
extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */
extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */
#define wgetstr(w, s) wgetnstr(w, s, -1)
#define getnstr(s, n) wgetnstr(stdscr, s, n)
#define gettmode()
#define getyx(win,y,x) (y = (win)?(win)->_cury:ERR, x = (win)?(win)->_curx:ERR)
#define getbegyx(win,y,x) (y = (win)?(win)->_begy:ERR, x = (win)?(win)->_begx:ERR)
#define getmaxyx(win,y,x) (y = (win)?((win)->_maxy + 1):ERR, x = (win)?((win)->_maxx + 1):ERR)
#define getparyx(win,y,x) (y = (win)?(win)->_pary:ERR, x = (win)?(win)->_parx:ERR)
#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
else getyx(newscr,(y),(x)); \
#define getattrs(win) ((win)?(win)->_attrs:A_NORMAL)
#define getcurx(win) ((win)?(win)->_curx:ERR)
#define getcury(win) ((win)?(win)->_cury:ERR)
#define getbegx(win) ((win)?(win)->_begx:ERR)
#define getbegy(win) ((win)?(win)->_begy:ERR)
#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR)
#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR)
#define getparx(win) ((win)?(win)->_parx:ERR)
#define getpary(win) ((win)?(win)->_pary:ERR)
#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1)
#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0)
#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
#define getch() wgetch(stdscr)
#define getstr(str) wgetstr(stdscr,str)
#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
#define getbkgd(win) ((win)->_bkgd)
#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
* Pseudo-character tokens outside ASCII range. The curses wgetch() function
extern NCURSES_EXPORT(int) getmouse (MEVENT *);
extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
[liuqi@ljjk liuqi]$
作一个对比:
[liuqi@ljjk liuqi]$ grep -c -i "GET" /usr/include/ncurses.h
59
[liuqi@ljjk liuqi]$ grep -c "GET" /usr/include/ncurses.h
2
[liuqi@ljjk liuqi]$
