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