#!/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