summaryrefslogtreecommitdiffstats
path: root/zgrep.in
diff options
context:
space:
mode:
Diffstat (limited to 'zgrep.in')
-rw-r--r--zgrep.in137
1 files changed, 2 insertions, 135 deletions
diff --git a/zgrep.in b/zgrep.in
index dbcb58c..bfbc490 100644
--- a/zgrep.in
+++ b/zgrep.in
@@ -1,136 +1,3 @@
#! /bin/sh
-# Zgrep - Grep wrapper for compressed files.
-# Copyright (C) 2008, 2009 Antonio Diaz Diaz.
-#
-# This script is free software: you have unlimited permission
-# to copy, distribute and modify it.
-
-LC_ALL=C
-export LC_ALL
-args=
-have_pat=0
-list=0
-no_name=0
-two_hyphens=0
-
-# Loop over args until pattern is found
-while [ -n "$1" ] ; do
-
- case "$1" in
- --help | --he* | -h)
- echo "Zgrep - Grep wrapper for compressed files."
- echo
- echo "Zgrep is a wrapper script around the grep command that allows"
- echo "transparent search on any combination of compressed and non-compressed"
- echo "files. If any given file is compressed, its uncompressed content is"
- echo "used. If a given file does not exist, zgrep tries the compressed file"
- echo "names corresponding to the supported compressors. If no files are"
- echo "specified, data is read from standard input, decompressed if needed, and"
- echo "fed to grep. Data read from standard input must be of the same type; all"
- echo "uncompressed or all compressed with the same compressor."
- echo "The supported compressors are bzip2, gzip, lzip and xz."
- echo
- echo "Zegrep is a shortcut for \"zgrep -E\""
- echo "Zfgrep is a shortcut for \"zgrep -F\""
- echo
- echo "Usage: $0 [OPTIONS] [GREP_OPTIONS] PATTERN [FILES]"
- echo
- echo "GREP_OPTIONS are passed directly to grep."
- echo "The exit status from grep is preserved."
- echo
- echo "Options:"
- echo " -h, --help display this help and exit"
- echo " -V, --version output version information and exit"
- echo
- echo "Report bugs to zutils-bug@nongnu.org"
- echo "Zutils home page: http://www.nongnu.org/zutils/zutils.html"
- exit 0 ;;
- --version | --ve* | -V)
- echo "Zgrep (zutils) VERSION"
- echo "Copyright (C) 2009 Antonio Diaz Diaz."
- echo "This script is free software: you have unlimited permission"
- echo "to copy, distribute and modify it."
- exit 0 ;;
- -[drRzZ] | --di* | --exc* | --inc* | --nu* | --rec*)
- echo "$0: option $1 not supported"
- exit 1 ;;
- -e?* | -f?* | --file=* | --reg*=*)
- args="${args} $1"; have_pat=1 ;;
- -e | -f | --file | --reg*)
- args="${args} $1 $2"; shift; have_pat=1 ;;
- --*=*)
- args="${args} $1" ;;
- -[ABCDm] | --af* | --be* | --binary-* | --con* | --de* | --[lm]a*)
- args="${args} $1 $2"; shift ;;
- -l | --files-with-*)
- args="${args} $1"; list=1 ;;
- -h | --no-f*)
- args="${args} $1"; no_name=1 ;;
- --)
- shift ; two_hyphens=1 ; break ;;
- -?*)
- args="${args} $1" ;;
- *)
- if [ ${have_pat} = 0 ] ; then args="${args} $1"; have_pat=1
- else break
- fi ;;
- esac
- shift
-done
-
-if [ ${have_pat} = 0 ] ; then
- echo "$0: Pattern not found; use --help for usage." 1>&2
- exit 1
-fi
-
-if [ $# = 0 ] ; then
- bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
- prog_name=`"${bindir}"zutils -t`
- case "${prog_name}" in
- bzip2 | gzip | lzip | xz) prog="${prog_name} -cdfq" ;;
- *) prog=cat ;;
- esac
- { "${bindir}"zutils -m ${prog_name} ; cat ; } | ${prog} | grep ${args}
- exit $?
-fi
-
-retval=0
-for i in "$@" ; do
- if [ "$i" = "--" ] && [ ${two_hyphens} = 0 ] ; then two_hyphens=1
- else
- if [ ! -f "$i" ] ; then
- if [ -f "$i.gz" ] ; then i="$i.gz"
- elif [ -f "$i.bz2" ] ; then i="$i.bz2"
- elif [ -f "$i.lz" ] ; then i="$i.lz"
- elif [ -f "$i.xz" ] ; then i="$i.xz"
- else
- echo "$0: File \"$i\" not found or not a regular file" 1>&2
- if [ ${retval} = 0 ] ; then retval=1 ; fi
- continue
- fi
- fi
- bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
- prog_name=`"${bindir}"zutils -t -- "$i"`
- case "${prog_name}" in
- bzip2 | gzip | lzip | xz) prog="${prog_name} -cdfq" ;;
- *) prog=cat ;;
- esac
- if [ ${list} = 1 ] ; then
- ${prog} -- "$i" | grep ${args} 2>&1 > /dev/null && echo "$i"
- r=$?
- elif [ $# = 1 ] || [ ${no_name} = 1 ] ; then
- ${prog} -- "$i" | grep ${args}
- r=$?
- else
- j=`printf "%s" "$i" | sed -e 's,\\\\,\\\\\\\\,g'`
- j=`printf "%s" "$j" | sed -e 's,|,\\\\|,g'`
- j=`printf "%s" "$j" | sed -e 's,&,\\\\&,g'`
- j=`printf "%s" "$j" | tr '\n' ' '`
- ${prog} -- "$i" | grep ${args} | sed -e "s,^,${j}:,"
- r=$?
- fi
- [ $r != 0 ] && retval="$r"
- fi
-done
-
-exit ${retval}
+bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
+exec "${bindir}"zutils --zgrep "$@"