Quoting Michael Sims <[EMAIL PROTECTED]>: > [EMAIL PROTECTED] wrote: > >>> ps aux | grep [l]pr > >>> > >>> This still lists all the processes that contain the string "lpr", > >>> but it will not match the grep process itself anymore. > >> > >> Why is that? Isn't a bracket expression containing only one > >> character exactly the same as the character by itself? Am I missing > >> something blindingly obvious? :) > > > > As you point out, the brackets with one character amount to a range > > of one character. The "[l]pr" regexp is intrepreted as "lpr", but > > the grep command show up in ps as "grep [l]pr". This prevents grep > > from matching its own process as it is output by ps. > > </me slaps forehead> > > Thanks, guess I didn't think hard enough. :) Nice trick, BTW... >
>From the grep info manual: 7. Why do people use strange regular expressions on `ps' output? ps -ef | grep '[c]ron' If the pattern had been written without the square brackets, it would have matched not only the `ps' output line for `cron', but also the `ps' output line for `grep'. Note that some platforms `ps' limit the ouput to the width of the screen, grep does not have any limit on the length of a line except the available memory. ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]