February 2, 2007 at 12:01 PM by Dr. Drang
As I said in this earlier post, Unix and Linux computers usually have an assortment of files with interesting bits of information. With a Mac, you can make this information more available to you by combining the Unix philosophy of text files and pipes with Quicksilver. This post will show a few more ways I’ve combined the two.
/usr/share/misc folder is the normal place for interesting little files. Unfortunately, the Mac does not have the full complement of files that you’d probably find on a Linux machine. I went to this Free Software Foundation page and downloaded their miscfiles package, which is more complete. I ungzipped the files and put them in a
miscfiles folder in my home directory. Now I’m ready to write some short shell scripts to access the info.
The first one pulls information from the
birthtokens file, a file that Apple did include in
/usr/share/misc and is also in the miscfiles package. I call the script
birthstone and I keep it in my
#!/bin/bash grep -i $1 $HOME/miscfiles/birthtoken | sed 's/:/ - /g'
From the Terminal, this script would be invoked by a line like
birthstone march and it would return
March - Aquamarine - Jonquil. Even better, because Quicksilver has my
~/bin folder cataloged, I can call this script from QS.
- Bring up Quicksilver (I use Control-Space).
- Start typing “birthstone.”
- Tab over to the third pane and type in the search string.
- Hit Return and wait for the output to appear in a new QS command window.
- Hit Return again to show the results in Large Type.
The process looks like this (the windows have been scaled to fit the blog):
A few notes on why the script is written the way it is:
- I call it “birthstone” rather than “birthtoken” because I would never remember “birthtoken.” Until I looked in this file, I didn’t even know there were birth flowers.
grepcase-insensitive, so I don’t have to capitalize anything.
sedpart of the script replaces the colons in the
birthtokenfile with spaces and hyphens. I found that the colons were making Quicksilver think the output was a URL, so its default operation was Open URL. Replacing the colons caused QS’s default operation to change to Large Type, which is just what I wanted.
grepsearches the whole line, not just the first field, I can not only find the birthstone for a given month, I can also find the month associated with a given stone.
I’ve written a few other scripts that do basically the same thing with other files in the miscfiles package. More useful scripts include
#!/bin/bash grep -i $1 $HOME/miscfiles/na.phone | sed 's/:/ - /g'
#!/bin/bash grep -i $1 $HOME/miscfiles/zipcodes | sed 's/:/ - /g'
#!/bin/bash grep -i $1 $HOME/miscfiles/airport | sed 's/:/ - /g'
airport script associates the airport with its three-letter code. The others should be self-explanatory.
I realize all this information is available on the net, but using these scripts is better than searching the net. They’re faster than Google, and when used with Quicksilver, I don’t have to switch from whatever program I’m in to my browser.