################################################################################
    #
    # Find and report all occurrences of duplicate lines in a text file.
    #
    #
    # Usage: awk -f uniq.awk [FILE]
    #
    ################################################################################
    {
        x = lines[$0]["count"]++;
        lines[$0]["NR"][x] = NR;

        # Find the length of the longest line to make it the column width
        if (x > 0) {
            if (length($0) > max) {
                max = length($0);
            }
        }
    }
    END {
        # If the file contains no lines to process, that is, it's empty,
        # return an exit status code of 1 to indicate the fact.
        if (!(NR > 0)) {
            exit 1;
        }

        # Prepare the format string
        fmt_s = "%s: %" max "-s (%s)\n";

        for (i in lines) {
            if (lines[i]["count"] > 1) {
                for (j = 0; j < lines[i]["count"]; j++) {
                    s = s lines[i]["NR"][j] ", ";
                }
                # Get rid of the trailing comma and space
                s = substr(s, 1, length(s) - 2);
                printf(fmt_s, lines[i]["count"], i, s);
                s = "";
            }
        }
    }

Test:

    $ cat -n data
         1	car
         2	baby
         3	car
         4	man
         5	woman
         6	woman
         7	key
         8	woman
    $ 
    $ 
    $ awk -f uniq.awk data
    2: car   (1, 3)
    3: woman (5, 6, 8)