allor()( set -f; unset o z i m; OPTIND=1 IFS=" " op() while getopts :i:o:m: O && case $O$OPTARG in ([$z]*|m*[!0-9]*|[!imo]*) ! : ;; (o+) o= O=;; (o-) O= ;; esac||! o=${o+${o:-$i}} m=${m:-1} do eval "z=$z${O:-o #} $O=\$OPTARG"||exit done op "$@";[ -f "${i:?No input specified!}" ] ||i= exec < "${i:?Input is not a regular file!}" && shift $((OPTIND-1(${#O}+1)) ) && z=$( ! { { grep -m$m "$@" 2>&3 | >&4 sed -ne'$=;$s/^/ /p' } 3>&1| grep . >&2;} 4>&1 ) && set ${z:?No match found!} ${o:+'>"$o"'} && case $((m==$1))$o in (0"$i") ! : ;; (0*) <"$i" eval " cat $3 && ! :" ;; (1*) <<-i eval " cut -c2- $3" $( printf %s\\n $2;paste /dev/null -) i esac )