#!/bin/bash while true ; do case "$1" in -A|-B) fgargs="$fgargs $1 $2" ; shift ; shift ;; -*) fgargs="$fgargs $1" ; shift ;; *) break ;; esac done if test $# = 1; then locn="." seltype="-type" selarg="f" pat="$1" elif test $# = 2; then locn="." seltype="-name" selarg="$1" pat="$2" elif test $# = 3; then locn="$1" seltype="-name" selarg="$2" pat="$3" else prog="`basename $0`" echo "USAGE: $prog [[START-DIR] FILE-MATCH-PATTERN] STRING-TO-FIND" exit 1 fi find "$locn" -name .svn -prune -a -type f -o "$seltype" "$selarg" -print0 | xargs -0 fgrep $fgargs -e "$pat"