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/uniq | |
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/uniq')
-rw-r--r-- | usr.bin/uniq/uniq.1 | 6 | ||||
-rw-r--r-- | usr.bin/uniq/uniq.c | 17 |
2 files changed, 18 insertions, 5 deletions
diff --git a/usr.bin/uniq/uniq.1 b/usr.bin/uniq/uniq.1 index eb28ca5..9ace854 100644 --- a/usr.bin/uniq/uniq.1 +++ b/usr.bin/uniq/uniq.1 @@ -32,7 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)uniq.1 8.1 (Berkeley) 6/6/93 +.\" From: @(#)uniq.1 8.1 (Berkeley) 6/6/93 +.\" $Id$ .\" .Dd June 6, 1993 .Dt UNIQ 1 @@ -43,6 +44,7 @@ .Sh SYNOPSIS .Nm .Op Fl c | Fl d | Fl u +.Op Fl i .Op Fl f Ar fields .Op Fl s Ar chars .Oo @@ -87,6 +89,8 @@ fields will be ignored. Character numbers are one based, i.e. the first character is character one. .It Fl u Don't output lines that are repeated in the input. +.It Fl i +Case insensitive comparison of lines. .\".It Fl Ns Ar n .\"(Deprecated; replaced by .\".Fl f ) . diff --git a/usr.bin/uniq/uniq.c b/usr.bin/uniq/uniq.c index 972581f..8f302ca 100644 --- a/usr.bin/uniq/uniq.c +++ b/usr.bin/uniq/uniq.c @@ -45,7 +45,7 @@ static const char copyright[] = static char sccsid[] = "@(#)uniq.c 8.3 (Berkeley) 5/4/95"; #endif static const char rcsid[] = - "$Id$"; + "$Id: uniq.c,v 1.3 1997/08/21 06:51:10 charnier Exp $"; #endif /* not lint */ #include <ctype.h> @@ -75,9 +75,10 @@ main (argc, argv) FILE *ifp, *ofp; int ch; char *prevline, *thisline, *p; + int iflag = 0, comp; obsolete(argv); - while ((ch = getopt(argc, argv, "-cdf:s:u")) != -1) + while ((ch = getopt(argc, argv, "-cdif:s:u")) != -1) switch (ch) { case '-': --optind; @@ -88,6 +89,9 @@ main (argc, argv) case 'd': dflag = 1; break; + case 'i': + iflag = 1; + break; case 'f': numfields = strtol(optarg, &p, 10); if (numfields < 0 || *p) @@ -152,7 +156,12 @@ done: argc -= optind; } /* If different, print; set previous to new value. */ - if (strcmp(t1, t2)) { + if (iflag) + comp = strcasecmp(t1, t2); + else + comp = strcmp(t1, t2); + + if (comp) { show(ofp, prevline); t1 = prevline; prevline = thisline; @@ -245,6 +254,6 @@ static void usage() { (void)fprintf(stderr, - "usage: uniq [-c | -du] [-f fields] [-s chars] [input [output]]\n"); + "usage: uniq [-c | -du | -i] [-f fields] [-s chars] [input [output]]\n"); exit(1); } |