Nobody has mentioned regular expressions yet. They are part of the life blood of unix. For those who are new or haven't strayed very far outside of DOS-type commands, regular expressions are sets of rules that describe generalities or traits rather than specific expressions such as the BBC program files mentioned earlier or a zillion other cases where one is looking for a general rule that describes countless specific cases. I use a mail program called procmail which sorts incoming mail and puts it in to folders based on who sent it. Like many unix utilities, it lives and breathes regular expressions so you don't have to write 50-thousand rules for essentially the same condition. An example is as follows: I get mail from my old email address which is martin@xxxxxxxxxxx. This mail first comes from a spam-blocker that is part of our Microsoft outlook exchange mail system and messages that the spam blocker thinks smell spammy are flagged with a header that contains the word "spam" plus a number from 0 or 1 to 100 which is the blocker's assessment of the likelyhood that this message is spam based on a formula the spam blocker uses. This means I get messages that may say, "Adult-Spam [94]" or something similar. I could do it the hard way and write "Adult-Spam [90]" "Adult-Spam [91]" and so on up to 99 and it would work and put any messages containing one of these lines right in to the bit bucket or I can put two lines in my procmail control file that read: * ^Subject:.*\[Adult Spam: [0-9][0-9]\] /dev/null Here's the English translation. * ^Subject:.* This regular expression tells procmail that we are looking for any line whose very first word is Subject: This includes the : character. The * after the : is the regular expression or RE way to say, I don't care what follows after this. Continuing on, \[Adult Spam: We're looking for the words "adult spam:" [0-9][0-9] Now, there's some real magic. The [ says we are starting a regular expression or RE. The 0-9 says the next character can be any number from 0 through 9. The ] says that this is the end of what we are looking for for the first digit but the next [0-9] says we are also looking for a second digit so altogether, we are looking for any two digits between 00 and 99. The \[ and \] tells the regular expression filter that those brackets are actually real bracket characters and don't mix them up and think it's a regular expression. /dev/null is the proper unix destination for all those wonderful business opportunities that I might choose if I wasn't sinical. so, what I just told you is that that one line directed procmail to key on any line whose first word is "subject:", whose next two words are "adult spam:" and whose next two characters are digits from 0 through 9. Ignore all other lines that don't fit this rule. Hey, if you're confused, I've been doing this for 26 years and I still have to really scratch myhead to make RE's work. You also must not forget that regular expressions are everywhere in unix from commands you type at the shell prompt all the way up to high-level scripting and programming languages so the more you learn about them, the more problems you can solve. You should have a man page to get your journey down the rabit hole started so try man regex Finally, I can't warn you strongly enough. Unix is industrial-strength power tools. Most of you are adults and you can do real harm to your system if you don't backup important data. These tools will do exactly what you tell them to do, not always what you were hoping they would do. In other words, if you wreck it and didn't have a backup, consider it tuition in the school of hard knocks. I am sure I have confused enough people if you are still reading this so let's let the smoke clear for now. Martin _______________________________________________ Blinux-list mailing list Blinux-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/blinux-list