#!/bin/bash

#set -x
set -eu
#set -o pipefail

function usage
{
    echo "Usage: $0"
}

n=10
dups=True

while [ "$#" -ge 1 ]
do
    case "$1" in
        -n)
            n="$2"
            shift
            ;;
        --disallow-duplicates)
            dups=False
            ;;
        -h|--help)
            usage 0
            ;;
        *)
            echo "$0: Unrecognized option: $1" 1>&2
            usage 1
            ;;
    esac
    shift
done

case "$dups" in
    True)
        sort -nr | head -"$n"
        ;;
    False)
        sort -nr | uniq | head -"$n"
        ;;
    *)
        echo "$0: Internal error: \$dups not True or False" 1>&2
        exit 1
        ;;
esac