logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lccnorm - normalize Library of Congress Classification call numbers

Author

       Paul Hoffman (nkuitse AT nkuitse DOT com)

Description

lccnorm transforms LC-style call numbers into a form that may be used in a straight ASCII sort.

       By default, each line of input is assumed to consist of a number of tab-delimited fields, of which the
       first contains an LC-style call number or class.

       If no file is specified, or if the file name "-" is specified, standard input will be processed.

       Normalization of call number ranges is a special challenge, because ranges are not normally specified
       using the exact endpoint.  Consider the range "B708-B713"; while "B708" does indicate the beginning point
       -- a no call number that comes before B 708 can fall within the range -- the end point is only a guide,
       not a strict limit, since the intent is that call numbers such as "B 713 .H94" and "B 713 .W55 L86" do
       fall within the range.  Unfortunately, ranges are often specified ambiguously; for example, the call
       number "B 713.14 G92" might or might not be considered to fall within this range.

Name

       lccnorm - normalize Library of Congress Classification call numbers

Options

-d, --delimiterstring
           Specify  a  string  other  than  a  single tab (ASCII character 9) to delimit the fields in a line of
           input.  This also provides the default for joining fields in the output; see option -j below.

       -f, --fieldrange
           The call number (or range) is found in the given range of fields.   Fields  are  1-based  (the  first
           field  is field 1, not field 0) and are separated by a single tab character (unless option -d is used
           to specify an alternate delimiter).

           When parsing call numbers (not ranges), all fields are concatenated using a single space to form  the
           call number that will be normalized.

           When parsing ranges, there are four possibilities:

           1 field
               The field contains a range in the form prefix (e.g., "J80"), closedrange (e.g., "ML566-566.6" or
               "ML566-ML566.6") or half-openrange (e.g., "KME451<KME500").

           2 fields
               The first field is the beginning of the (closed) range, and the second is the end.

           3 fields
               The first field is a prefix common to both the beginning and end of the range, and the second and
               third fields are the remainders.

           4 fields
               The first and third fields together are the beginning of the range, and the second and fourth are
               the end.

           For example, the following all produce identical output:

               $ echo 'PL4501-4509'     | lccnorm -d: -f1
               $ echo 'PL4501:PL4509'   | lccnorm -d: -f1-2
               $ echo 'PL:4501:4509'    | lccnorm -d: -f1-3
               $ echo 'PL:4501:PL:4509' | lccnorm -d: -f1-4

       -j, --joinstring
           Specify  a  character  to  use  when joining fields for output. The default is to use the same string
           specified in option -d, or a single tab if -d was not given.

       -c  Don't delete the input fields from which call numbers (or ranges) were obtained.  Either the  -b  and
           -e option must be provided to specify where the normalized string is to be placed.

       -b, --begin
           Place normalized strings at the beginning of output lines.

       -e, --end
           Place normalized strings at the end of output lines.

       -D, --die-on-error
           Exit  with  a  non-zero  status as soon as an unnormalizable input is encountered.  The default is to
           issue a warning and normalize to the empty string.

       -v, --verbose
           Be verbose.  This currently has no effect unless used with the -V or --version option.

       -h, --help
           Print help information and exit.

       -V, --version
           Print the version number and exit.  If the -v or --verbose option is specified, print out  additional
           information.

       -M, --manual
           View the manual page for lccnorm.

       -L, --license
           View the license under which lccnorm is distributed.

See Also

       Biblio::LCC

perl v5.36.0                                       2023-02-05                                        LCCNORM(1p)

Synopsis

lccnorm [option...] [file...]

       lccnorm-h|--helplccnorm-V|--version

See Also