gzip 1.2.4
authorJean-loup Gailly <jloup@chorus.fr>
Wed, 23 Jun 1993 07:51:32 +0000 (07:51 +0000)
committerJean-loup Gailly <jloup@chorus.fr>
Wed, 23 Jun 1993 07:51:32 +0000 (07:51 +0000)
zgrep.in [new file with mode: 0644]

diff --git a/zgrep.in b/zgrep.in
new file mode 100644 (file)
index 0000000..9fcd828
--- /dev/null
+++ b/zgrep.in
@@ -0,0 +1,67 @@
+:
+#!/bin/sh
+
+# zgrep -- a wrapper around a grep program that decompresses files as needed
+# Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
+
+PATH="BINDIR:$PATH"; export PATH
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+       *egrep) grep=${EGREP-egrep}     ;;
+       *fgrep) grep=${FGREP-fgrep}     ;;
+       *)      grep=${GREP-grep}       ;;
+esac
+pat=""
+while test $# -ne 0; do
+  case "$1" in
+  -e | -f) opt="$opt $1"; shift; pat="$1"
+           if test "$grep" = grep; then  # grep is buggy with -e on SVR4
+             grep=egrep
+           fi;;
+  -*)     opt="$opt $1";;
+   *)      if test -z "$pat"; then
+            pat="$1"
+          else
+            break;
+           fi;;
+  esac
+  shift
+done
+
+if test -z "$pat"; then
+  echo "grep through gzip files"
+  echo "usage: $prog [grep_options] pattern [files]"
+  exit 1
+fi
+
+list=0
+silent=0
+op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
+case "$op" in
+  *l*) list=1
+esac
+case "$op" in
+  *h*) silent=1
+esac
+
+if test $# -eq 0; then
+  gzip -cdfq | $grep $opt "$pat"
+  exit $?
+fi
+
+res=0
+for i do
+  if test $list -eq 1; then
+    gzip -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i
+    r=$?
+  elif test $# -eq 1 -o $silent -eq 1; then
+    gzip -cdfq "$i" | $grep $opt "$pat"
+    r=$?
+  else
+    gzip -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
+    r=$?
+  fi
+  test "$r" -ne 0 && res="$r"
+done
+exit $res