Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/gzip Add a BSD licensed zgrep written by me.



details:   https://anonhg.NetBSD.org/src/rev/5f42b2994d4d
branches:  trunk
changeset: 556833:5f42b2994d4d
user:      wiz <wiz%NetBSD.org@localhost>
date:      Sun Dec 28 17:26:00 2003 +0000

description:
Add a BSD licensed zgrep written by me.
Much nicer than the old one, if I may say so.

Thanks go to atatat for testing and suggestions.

diffstat:

 usr.bin/gzip/Makefile |   17 ++++---
 usr.bin/gzip/zgrep    |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++
 usr.bin/gzip/zgrep.1  |   96 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 217 insertions(+), 8 deletions(-)

diffs (253 lines):

diff -r 68441089b3d3 -r 5f42b2994d4d usr.bin/gzip/Makefile
--- a/usr.bin/gzip/Makefile     Sun Dec 28 17:12:00 2003 +0000
+++ b/usr.bin/gzip/Makefile     Sun Dec 28 17:26:00 2003 +0000
@@ -1,24 +1,25 @@
-#      $NetBSD: Makefile,v 1.6 2003/12/28 13:40:56 mrg Exp $
+#      $NetBSD: Makefile,v 1.7 2003/12/28 17:26:00 wiz Exp $
 
 PROG=          gzip
-MAN=           gzip.1 gzexe.1 zdiff.1 zforce.1 zmore.1 znew.1
+MAN=           gzip.1 gzexe.1 zdiff.1 zforce.1 zgrep.1 zmore.1 znew.1
 
 DPADD=         ${LIBZ}
 LDADD=         -lz
 
-# XXX missing: zgrep
-SCRIPTS=       zforce gzexe znew zmore zdiff 
+SCRIPTS=       gzexe zdiff zforce zgrep zmore znew
 
-# XXX missing: zgrep.1->zegrep.1 zgrep.1->zfgrep.1
 MLINKS+=       gzip.1 gunzip.1 \
                gzip.1 gzcat.1 \
                gzip.1 zcat.1 \
-               zdiff.1 zcmp.1
+               zdiff.1 zcmp.1 \
+               zgrep.1 zegrep.1 \
+               zgrep.1 zfgrep.1
 
-# XXX missing: zgrep->zegrep zgrep->zfgrep
 LINKS+=                ${BINDIR}/gzip ${BINDIR}/gunzip \
                ${BINDIR}/gzip ${BINDIR}/gzcat \
                ${BINDIR}/gzip ${BINDIR}/zcat \
-               ${BINDIR}/zdiff ${BINDIR}/zcmp
+               ${BINDIR}/zdiff ${BINDIR}/zcmp \
+               ${BINDIR}/zgrep ${BINDIR}/zegrep \
+               ${BINDIR}/zgrep ${BINDIR}/zfgrep
 
 .include <bsd.prog.mk>
diff -r 68441089b3d3 -r 5f42b2994d4d usr.bin/gzip/zgrep
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/gzip/zgrep        Sun Dec 28 17:26:00 2003 +0000
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+# Copyright (c) 2003 Thomas Klausner.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+grep=/usr/bin/grep
+zcat=/usr/bin/zcat
+
+endofopts=0
+pattern_found=0
+grep_args=""
+
+prg=$0
+
+# handle being called 'zegrep' or 'zfgrep'
+case ${prg} in
+    *zegrep)
+       grep_args="-E";;
+    *zfgrep)
+       grep_args="-F";;
+esac
+
+# skip all options and pass them on to grep taking care of options
+# with arguments, and if -e was supplied
+
+while [ $# -gt 0 -a ${endofopts} -eq 0 ]
+do
+    case $1 in
+    # from GNU grep-2.5.1 -- keep in sync!
+       -[ABCDXdefm])
+           case $1 in
+               -e)
+                   pattern_found=1;;
+               *)
+                   ;;
+           esac
+
+           if [ $# -lt 2 ]
+               then
+               echo "${prg}: missing argument for ${saved_arg} flag" >&2
+               exit 1
+           fi
+           grep_args="${grep_args} $1 $2"
+           shift 2
+           ;;
+       --)
+           grep_args="${grep_args} $1"
+           shift
+           endofopts=1
+           ;;
+       -)
+           endofopts=1
+           ;;
+       -*)
+           grep_args="${grep_args} $1"
+           shift
+           ;;
+       *)
+           # pattern to grep for
+           endofopts=1
+           ;;
+    esac
+done
+
+# if no -e option was found, take next argument as grep-pattern
+if [ ${pattern_found} -lt 1 ]
+then
+    if [ $# -lt 1 ]
+    then
+       echo "${prg}: missing pattern" >&2
+       exit 1
+    fi
+    pattern=$1
+    shift
+fi
+
+# call grep ...
+if [ $# -lt 1 ]
+then
+    # ... on stdin
+    ${zcat} - | ${grep} ${grep_args} ${pattern} -
+else
+    # ... on all files given on the command line
+    while [ $# -gt 0 ]
+    do
+       ${zcat} -- "$1" | ${grep} -H --label="${1}" ${pattern} ${grep_args} -
+       shift
+    done
+fi
+
+exit 0
diff -r 68441089b3d3 -r 5f42b2994d4d usr.bin/gzip/zgrep.1
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/gzip/zgrep.1      Sun Dec 28 17:26:00 2003 +0000
@@ -0,0 +1,96 @@
+.\" $NetBSD: zgrep.1,v 1.1 2003/12/28 17:26:00 wiz Exp $
+.\"
+.\" Copyright (c) 2003 Thomas Klausner.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\"    derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.Dd December 28, 2003
+.Dt ZGREP 1
+.Os
+.Sh NAME
+.Nm zgrep ,
+.Nm zegrep ,
+.Nm zfgrep
+.Nd print lines matching a pattern in gzip-compressed files
+.Sh SYNOPSIS
+.Nm
+.Op Ar grep-flags
+.Op Fl -
+.Ar pattern
+.Op Ar files ...
+.Pp
+.Nm zegrep
+.Op Ar grep-flags
+.Op Fl -
+.Ar pattern
+.Op Ar
+.Pp
+.Nm zfgrep
+.Op Ar grep-flags
+.Op Fl -
+.Ar pattern
+.Op Ar
+.Sh DESCRIPTION
+.Nm
+runs
+.Xr grep 1
+on
+.Ar files
+or stdin, if no
+.Ar files
+argument is given, after decompressing them with
+.Xr zcat 1 .
+.Pp
+The
+.Ar grep-flags
+and
+.Ar pattern
+arguments are passed on to
+.Xr grep 1 .
+If an
+.Fl e
+flag is found in the
+.Ar grep-flags ,
+.Nm
+will not look for a
+.Ar pattern
+argument.
+.Pp
+.Nm zegrep
+calls
+.Xr egrep 1 ,
+while
+.Nm zfgrep
+calls
+.Xr fgrep 1 .
+.Sh RETURN VALUES
+In case of missing arguments or missing pattern,
+1 will be returned, otherwise 0.
+.Sh SEE ALSO
+.Xr egrep 1 ,
+.Xr fgrep 1 ,
+.Xr grep 1 ,
+.Xr gzip 1 ,
+.Xr zcat 1
+.Sh AUTHORS
+.An Thomas Klausner
+.Aq wiz%NetBSD.org@localhost



Home | Main Index | Thread Index | Old Index