indxbib(1)

πŸ’… indxbib(1) β€” the General Commands Manual, but make it cute

okay so bestie, welcome to indxbib(1) β€” yes that's the section 1 of the General Commands Manual, we're in the big leagues now ✨


🌸 NAME 🌸

indxbib β€” make an inverted index of bibliographic databases. that's it, that's the vibe πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

indxbib [-w] [-c common-words-file] [-d dir] [-f list-file]
        [-h min-hash-table-size] [-i excluded-fields]
        [-k max-keys-per-record] [-l min-key-length] [-n threshold]
        [-o file] [-t max-key-length] [file ...]

indxbib --help

indxbib -v

indxbib --version

like, copy it exactly, don't come for me 🫢


✨ DESCRIPTION ✨

so indxbib makes an inverted index of the bibliographic databases living in each file, and the whole point is to speed up access to them by refer(1), lookbib(1), and lkbib(1). it's giving personal assistant for your bibliographies, honestly πŸ‘‘

the program writes to a temporary file, and then later renames it to file.i. and if you pass no file operands and don't give the -o option? then indxbib names the index Ind.i. iconic default behavior honestly πŸ’…

bibliographic databases are divided into records by blank lines β€” that's the divider, that's the boundary, no cap. within a record, each field starts with a % character at the beginning of a line. and fields have a one-letter name that follows the % character. one letter. that's all they get. minimalist queens 🌸

okay this next part is important so like, listen up: indxbib stores the values set by the -c, -l, -n, and -t options in the index. programs that search the index interpret them β€” discarding and truncating keys appropriately β€” and they use the original keys to verify that any record found using the index actually contains the keys. so the whole thing self-checks, obsessed πŸ”₯

what that means for you: a user of an index doesn't need to know whether these options were used in the creation of the index, provided that not all the keys to be searched for would have been discarded during indexing, and provided that the user supplies at least the part of each key that would have remained after being truncated during indexing. read that twice, bestie, it's a whole conditional 😭

indxbib also stores the value set by the -i option in the index, for use in verifying records found using it. teamwork, fr fr 🫢


πŸ’– OPTIONS πŸ’–

  • --help β€” displays a usage message. meanwhile -v and --version show version information. all of them exit afterward β€” they said "my work here is done" and left πŸ’€
  • -c common-words-file β€” read the list of common words from common-words-file instead of /usr/share/groff/1.24.2/eign. custom word list, we love a personalized touch πŸŽ€
  • -d dir β€” use dir as the name of the directory to store in the index, instead of that returned by getcwd(2). typically, dir will be a symbolic link whose target is the current working directory. sneaky but valid, iykyk πŸ¦‹
  • -f list-file β€” read the files to be indexed from list-file. and if list-file is -, files will be read from the standard input stream. also: the -f option can be given at most once β€” don't push it πŸ™ˆ
  • -h min-hash-table-size β€” use the first prime number greater than or equal to the argument for the size of the hash table. larger values will usually make searching faster, but will make the index file larger and cause indxbib to use more memory. the default hash table size is 997. primes only, she's picky and that's valid ✨
  • -i excluded-fields β€” don't index the contents of fields whose names are in excluded-fields. field names are one character each. and if this option is not present, indxbib excludes fields X, Y, and Z. three field girlies staying unindexed πŸ™…β€β™€οΈ
  • -k max-keys-per-record β€” use no more keys per input record than specified in the argument. if this option is not present, the maximum is 100. boundaries, bestie πŸ’…
  • -l min-key-length β€” discard any key whose length in characters is shorter than the value of the argument. if this option is not present, the minimum key length is 3. too short? not invited to the party 🚫
  • -n threshold β€” discard the threshold most common words from the common words file. if this option is not present, the 100 most common words are discarded. bye bye "the", you will not be missed πŸ’€
  • -o basename β€” name the index basename.i. yes, it appends the .i for you, she's thoughtful like that πŸŽ€
  • -t max-key-length β€” truncate keys to max-key-length in characters. if this option is not present, keys are truncated to 6 characters. six chars and out, main character energy πŸ‘‘
  • -w β€” index whole files. each file is a separate record. no field parsing, just ✨ vibes ✨ β€” well, actually just whole-file records, let's be accurate πŸ¦‹

🌈 EXIT STATUS 🌈

  • status 0 β€” successful operation, slay πŸ’–
  • status 2 β€” the program cannot interpret its command-line arguments, like when you say something and she's just not getting it 😭
  • status 1 β€” it encounters an error during operation, we don't talk about that one πŸ’€

πŸ“ FILES πŸ“

  • file.i β€” index for file
  • Ind.i β€” default index name
  • /usr/share/groff/1.24.2/eign β€” contains the list of common words. fun fact: the traditional name, "eign", is an abbreviation of "English ignored [word list]". lore drop 🧚
  • indxbibXXXXXX β€” temporary file

πŸ‘‘ SEE ALSO πŸ‘‘

  • "Some Applications of Inverted Indexes on the Unix System", by M. E. Lesk, 1978, AT&T Bell Laboratories Computing Science Technical Report No. 69. an absolute classic, a foundational text, we stan a 1978 baddie πŸ“š
  • refer(1), lkbib(1), lookbib(1) β€” the squad 🫢

lowkey a reminder: this whole page is from groff 1.24.2, dated 2026-10-01, and that's the version-and-date moment β€” consider it my little sign-off at the very end, mwah πŸ’œβœ¨
πŸ“¦ where this page comes from