ACC SHELL

Path : /usr/bin/
File Upload :
Current File : //usr/bin/mgrep

#!/bin/sh

# mgrep -- a wrapper around a grep program that decode MIMEd data
# as needed (some code taken from zgrep of gzip)

PATH="/usr/bin:$PATH"; export PATH

prog=${0##*/}
case "$prog" in
    *egrep) grep=${EGREP-egrep -a} ;;
    *fgrep) grep=${FGREP-egrep -a} ;;
    *)      grep=${GREP-grep -a}   ;;
esac

pat=""
while test $# -ne 0; do
    case "$1" in
	-e|-f)
	    opt="$opt $1"
	    shift
	    pat="$1"
	    if test "$grep" = grep; then
		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 "$prog: grep through mimencoded files" 1>&2
    echo "usage: $prog [grep_options] pattern [files]" 1>&2
    exit 1
fi

  list=0
silent=0
case "${opt//[ -]/}" in
    *l*) list=1
esac
case "${opt//[ -]/}" in
    *h*) silent=1
esac

mimedecode ()
{
    mimencode -u -b $1 2> /dev/null
    echo
}

if test $# -eq 0; then
    mimedecode | $grep $opt "$pat"
    exit $?
fi

res=0
for i do
    if test $list -eq 1; then
	mimedecode $i | $grep $opt "$pat" > /dev/null && echo $i
	r=$?
    elif test $# -eq 1 -o $silent -eq 1; then
	mimedecode $i | $grep $opt "$pat"
	r=$?
    else
	mimedecode $i | $grep $opt "$pat" | sed "s|^|${i}:|"
	r=$?
    fi
    test "$r" -ne 0 && res="$r"
done
exit $res

ACC SHELL 2018