#compdef uniq guniq local args args=( '(-c --count)'{-c,--count}'[prefix lines by the number of occurrences]' '(-d --repeated)'{-d,--repeated}'[only print duplicate lines]' '(--all-repeated)-D-[print all duplicate lines]' '(-D)--all-repeated=-[print all duplicate lines]::delimit method [none]:(none prepend separate)' '(-f --skip-fields)'{-f,--skip-fields=}'[avoid comparing initial fields]:number of fields' '--group=-[show all items]::group separation [separate]:(separate prepend append both)' '(-i --ignore-case)'{-i,--ignore-case}'[ignore differences in case when comparing]' '(-s --skip-chars)'{-s,--skip-chars=}'[avoid comparing initial characters]:number of characters' '(-t --separator)'{-t,--separator=}'[specify field delimiter]:separator' '(-u --unique)'{-u,--unique}'[only print unique lines]' '(-w --check-chars)'{-w,--check-chars=}'[specify maximum number of characters to compare]:characters' '(-W --check-fields)'{-W,--check-fields=}'[specify maximum number of fields to compare]:fields' '(-z --zero-terminated)'{-z,--zero-terminated}'[delimit lines with null character, not newline]' '(- *)--help[display help information]' '(- *)--version[display version information]' ) if ! _pick_variant gnu=Free\ Soft unix --version; then local optchars="cdufs" if [[ "$OSTYPE" == (darwin|dragonfly|freebsd|openbsd)* ]]; then optchars+=i fi [[ $OSTYPE = freebsd* ]] && optchars+=D args=( ${(M)args:#(|\*)(|\(*\))-[$optchars]*} ) fi _arguments "$args[@]" \ '1::input file:_files' \ '2::output file:_files'