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]

Reply via email to