CLI Magic: Command-line contact management
There's an ancient Unix practice of keeping a system-wide phone directory in /usr/share/ with one-line entries containing name, location, and number, and a shell script named something like phone or tel that calls grep to output lines that match whatever arguments you give. You can improve on that method to create a personal contact manager with surprising speed and power.
My requirements for an address book and contact manager are simple. I just want to be able to search and view records whenever I need them, from the command line and a text editor. I don't want to have to start up one of the many standalone applications for this purpose, which all have their own sets of dependencies, file formats, and editing commands. And since I work on a single system and share the data with no one, rigging up a home LDAP (Lightweight Directory Access Protocol) setup is overkill.
Furthermore, this contact manager should be usable whether I happen to be in X or at a console, and perfectly accessible over a slow text-only network line. It should let me cut and paste addresses and contact information from the Web, email, and any other application I might run. There should be no forms to have to complete for each record, and no concept of "required fields" -- each record should be able to contain as much, or as little, information as I happen to have.
With a plain-text file and a few handy tools like awk, you can easily accomplish all of the above.