diff options
| author | Alexander Eremin <a.eremin@nexenta.com> | 2012-03-30 10:49:58 -0400 |
|---|---|---|
| committer | Alexander Eremin <a.eremin@nexenta.com> | 2012-03-30 10:49:58 -0400 |
| commit | 3ed621bc8eb70ee11c69cd408fb8450eac33c281 (patch) | |
| tree | 1fb11eb397249bd713b563f264a855d7a2cc0237 /usr/src/cmd/grep | |
| parent | 36d0f9d8b04bc0b4d92f4aef6c71e9cb4d433d5d (diff) | |
| download | illumos-joyent-3ed621bc8eb70ee11c69cd408fb8450eac33c281.tar.gz | |
650 grep support for -q would be useful
Reviewed by: David Höppner <0xffea@googlemail.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Andrew Stormont <Andrew.Stormont@nexenta.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Albert Lee <trisk@nexenta.com>
Approved by: Albert Lee <trisk@nexenta.com>
Diffstat (limited to 'usr/src/cmd/grep')
| -rw-r--r-- | usr/src/cmd/grep/grep.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/usr/src/cmd/grep/grep.c b/usr/src/cmd/grep/grep.c index 37ccd8c2be..62a4527529 100644 --- a/usr/src/cmd/grep/grep.c +++ b/usr/src/cmd/grep/grep.c @@ -30,7 +30,7 @@ /* Copyright (c) 1987, 1988 Microsoft Corporation */ /* All Rights Reserved */ -#pragma ident "%Z%%M% %I% %E% SMI" +/* Copyright 2012 Nexenta Systems, Inc. All rights reserved. */ /* * grep -- print lines matching (or not matching) a pattern @@ -88,6 +88,7 @@ static int sflag; static int iflag; static int wflag; static int hflag; +static int qflag; static int errflg; static int nfile; static long long tln; @@ -113,11 +114,14 @@ main(int argc, char **argv) #endif (void) textdomain(TEXT_DOMAIN); - while ((c = getopt(argc, argv, "hblcnsviyw")) != -1) + while ((c = getopt(argc, argv, "hqblcnsviyw")) != -1) switch (c) { case 'h': hflag++; break; + case 'q': /* POSIX: quiet: status only */ + qflag++; + break; case 'v': vflag++; break; @@ -148,7 +152,7 @@ main(int argc, char **argv) } if (errflg || (optind >= argc)) { - errmsg("Usage: grep -hblcnsviw pattern file . . .\n", + errmsg("Usage: grep [-c|-l|-q] -hbnsviw pattern file . . .\n", (char *)NULL); exit(2); } @@ -228,7 +232,7 @@ execute(char *file) if ((count = read(temp, prntbuf, GBUFSIZ)) <= 0) { (void) close(temp); - if (cflag) { + if (cflag && !qflag) { if (nfile > 1 && !hflag && file) (void) fprintf(stdout, "%s:", file); (void) fprintf(stdout, "%lld\n", tln); @@ -324,7 +328,7 @@ execute(char *file) } (void) close(temp); - if (cflag) { + if (cflag && !qflag) { if (nfile > 1 && !hflag && file) (void) fprintf(stdout, "%s:", file); (void) fprintf(stdout, "%lld\n", tln); @@ -340,6 +344,11 @@ succeed(char *f) if (f == NULL) f = "<stdin>"; + if (qflag) { + /* no need to continue */ + return (1); + } + if (cflag) { tln++; return (0); |
