When disabled records are present, include them in a new section in the
default output of `list`. If no disabled records are present, don't
include the section.
These commands make it possible to disable records without fully
removing them. To 'disable' a record, it simply is commented out with
the following pattern `#disabled: ` prepended to the line.
Displaying a record pair for a hostname or IP address is likely a common
operation, and using the `show` name makes it clear what the primary
function of the command is. Since record pairs are very simple, the
easiest way to allow both hostname and ip address arguments is to use
grep, which also provides general search-like functionality. In order to
avoid doubling this functionality, use the `show` command in the `list`
command for search.
When using the pattern of blanking the lines first and then deleting
the blank lines, the program ends up deleting potentially intentional
blank lines. In order to avoid this, use a simple delete rather than the
blanking + blank line deleting pattern.
This program contains the same functionality as previous iterations,
with several changes:
- move to command-based structure using the bash boilerplate template,
- inlcude basic error handling,
- revise variable naming and options for clarity,
- prefer `printf` over `echo`,
- misc other revisions.