#autoload grep_args=() while [[ "$1" == -* ]]; do grep_args=( "$grep_args[@]" "$1" ) shift [[ "$grep_args[-1]" == '--' ]] && break done grep_args=( "$grep_args[@]" "$1" ) shift find "$@" -name '*.p[ml]' | xargs egrep "$grep_args[@]"