grep: add -H flag
This commit is contained in:
parent
e17b9cdd0a
commit
865869fb28
6
grep.1
6
grep.1
@ -3,7 +3,7 @@
|
||||
grep \- search files for a pattern
|
||||
.SH SYNOPSIS
|
||||
.B grep
|
||||
.RB [ \-Ecilnqv ]
|
||||
.RB [ \-EHcilnqv ]
|
||||
.RB [ \-e
|
||||
.I pattern ]
|
||||
.I pattern
|
||||
@ -24,6 +24,10 @@ status code is 2.
|
||||
.B \-E
|
||||
matches using extended regex.
|
||||
.TP
|
||||
.B \-H
|
||||
prefixes each matching line with its filename in the output. This is the
|
||||
default when there is more than one file specified.
|
||||
.TP
|
||||
.B \-c
|
||||
prints only a count of matching lines.
|
||||
.TP
|
||||
|
8
grep.c
8
grep.c
@ -15,6 +15,7 @@ static int grep(FILE *, const char *);
|
||||
|
||||
static int eflag = 0;
|
||||
static int vflag = 0;
|
||||
static int Hflag = 0;
|
||||
static int many;
|
||||
static char mode = 0;
|
||||
|
||||
@ -27,7 +28,7 @@ static struct plist {
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
enprintf(Error, "usage: %s [-Ecilnqv] [-e pattern] pattern [files...]\n", argv0);
|
||||
enprintf(Error, "usage: %s [-EHcilnqv] [-e pattern] pattern [files...]\n", argv0);
|
||||
}
|
||||
|
||||
int
|
||||
@ -42,6 +43,9 @@ main(int argc, char *argv[])
|
||||
case 'E':
|
||||
flags |= REG_EXTENDED;
|
||||
break;
|
||||
case 'H':
|
||||
Hflag = 1;
|
||||
break;
|
||||
case 'e':
|
||||
addpattern(EARGF(usage()));
|
||||
eflag = 1;
|
||||
@ -143,7 +147,7 @@ grep(FILE *fp, const char *str)
|
||||
case 'q':
|
||||
exit(Match);
|
||||
default:
|
||||
if (many)
|
||||
if (many || Hflag)
|
||||
printf("%s:", str);
|
||||
if (mode == 'n')
|
||||
printf("%ld:", n);
|
||||
|
Loading…
Reference in New Issue
Block a user