#define VERSION "uniq.c -- BDS Version 1.0 -- 6/20/82"
/*
* uniq - report repeated lines in a file
*
* Adapted for BDS C by Jeff Martin, from a program by the same
* name written to run under the Unix (tm) operating system.
*
* From the manual page for the Unix command:
*
* "Uniq reads the input file comparing adjacent lines. In the
* normal case, the second and succeeding copies of repeated
* lines are removed; the remainder is written on the output
* file. Input and output should always be different. Note
* that repeated lines must be adjacent in order to be found.
* If the -u flag is used, just the lines that
* are not repeated in the original file are output. The -d
* option specifies that one copy of just the repeated lines is
* to be written. The normal mode output is the union of the
* -u and -d mode outputs.
*
* "The -c option supersedes -u and -d and generates an output
* report in default style but with each line preceded by a
* count of the number of times it occurred.
*
* "The n arguments specify skipping an initial portion of each
* line in the comparison:
*
* -n The first n fields together with any blanks before
* each are ignored. A field is defined as a string of
* non-space, non-tab characters separated by tabs and
* spaces from its neighbors.
*
* ^n The first n characters are ignored. Fields are
* skipped before characters."
*
* To compile: CC1 uniq.c
*
* To link: L2 uniq dio
* or -- CLINK uniq -f dio
*/
usage()
{
fprintf(STDERR,"\n%s\n",VERSION);
fputs("\nUsage: UNIQ [-u][-d][-c] [-n] [^n] input [>output]\n",STDERR);
fputs("\t-u ==> just output unrepeated lines\n",STDERR);
fputs("\t-d ==> output one copy of just repeated lines\n",STDERR);
fputs("\t(default) ==> union of -u and -d options\n\n",STDERR);
fputs("\t-c ==> prefix each output line with count of occurrences\n\n",STDERR);
fputs("\t-n ==> skip first n fields in comparison\n",STDERR);
fputs("\t^n ==> ignore first n characters (fields are skipped first)\n",STDERR);
exit(1);
}