diff options
author | joerg <joerg@FreeBSD.org> | 1997-09-07 15:09:22 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1997-09-07 15:09:22 +0000 |
commit | caa2e7e2da294fd9afa91fec5201e2e7cd44ba9b (patch) | |
tree | 17ccdf70a6799a645b2de5790c7b81f4fe69b15a /usr.bin/comm | |
parent | fc4aea9e02bf57962e9fbec614769f5f64003e3d (diff) | |
download | FreeBSD-src-caa2e7e2da294fd9afa91fec5201e2e7cd44ba9b.zip FreeBSD-src-caa2e7e2da294fd9afa91fec5201e2e7cd44ba9b.tar.gz |
Teach comm(1) and uniq(1) about an option for case-insensitive work.
PR: 3042
Submitted by: graphix@iastate.edu (Kent Vander Velden)
Diffstat (limited to 'usr.bin/comm')
-rw-r--r-- | usr.bin/comm/comm.1 | 7 | ||||
-rw-r--r-- | usr.bin/comm/comm.c | 24 |
2 files changed, 24 insertions, 7 deletions
diff --git a/usr.bin/comm/comm.1 b/usr.bin/comm/comm.1 index 72ee36f..8876de8 100644 --- a/usr.bin/comm/comm.1 +++ b/usr.bin/comm/comm.1 @@ -32,7 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)comm.1 8.1 (Berkeley) 6/6/93 +.\" From: @(#)comm.1 8.1 (Berkeley) 6/6/93 +.\" $Id$ .\" .Dd June 6, 1993 .Os @@ -42,7 +43,7 @@ .Nd select or reject lines common to two files .Sh SYNOPSIS .Nm comm -.Op Fl 123 +.Op Fl 123i .Ar file1 file2 .Sh DESCRIPTION The @@ -69,6 +70,8 @@ Suppress printing of column 1. Suppress printing of column 2. .It Fl 3 Suppress printing of column 3. +.It Fl i +Case insensitive comparison of lines. .El .Pp Each column will have a number of tab characters prepended to it diff --git a/usr.bin/comm/comm.c b/usr.bin/comm/comm.c index 46707bb..debbb0b 100644 --- a/usr.bin/comm/comm.c +++ b/usr.bin/comm/comm.c @@ -41,7 +41,11 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)comm.c 8.4 (Berkeley) 5/4/95"; +#if 0 +static char sccsid[] = "From: @(#)comm.c 8.4 (Berkeley) 5/4/95"; +#endif +static const char rcsid[] = + "$Id$"; #endif /* not lint */ #include <err.h> @@ -66,13 +70,15 @@ main(argc, argv) char *argv[]; { int comp, file1done, file2done, read1, read2; - int ch, flag1, flag2, flag3; + int ch, flag1, flag2, flag3, iflag; FILE *fp1, *fp2; char *col1, *col2, *col3; char **p, line1[MAXLINELEN], line2[MAXLINELEN]; flag1 = flag2 = flag3 = 1; - while ((ch = getopt(argc, argv, "-123")) != -1) + iflag = 0; + + while ((ch = getopt(argc, argv, "-123i")) != -1) switch(ch) { case '-': --optind; @@ -86,6 +92,9 @@ main(argc, argv) case '3': flag3 = 0; break; + case 'i': + iflag = 1; + break; case '?': default: usage(); @@ -129,7 +138,12 @@ done: argc -= optind; } /* lines are the same */ - if (!(comp = strcmp(line1, line2))) { + if(iflag) + comp = strcasecmp(line1, line2); + else + comp = strcmp(line1, line2); + + if (!comp) { read1 = read2 = 1; if (col3) (void)printf("%s%s", col3, line1); @@ -180,6 +194,6 @@ file(name) static void usage() { - (void)fprintf(stderr, "usage: comm [-123] file1 file2\n"); + (void)fprintf(stderr, "usage: comm [-123i] file1 file2\n"); exit(1); } |