[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: funny...



certain non-gnu versions of sed (which hard telling what regex engine
they are using) may interpret the regex funny

Bob B. Kat

"We demand rigidly defined areas of doubt and uncertainty." 
  - Douglas Adams -


-----Original Message-----
From: silug-discuss-owner@silug.org
[mailto:silug-discuss-owner@silug.org] On Behalf Of Richard Fifarek
Sent: Friday, October 18, 2002 11:35 AM
To: Silug
Subject: Re: funny...


	Certain shells will interperate this differently, so you may
have 
to play around with it to get it to work.

On 18 Oct 2002, Stephen D Reindl wrote:

> Now I get it. I had out the Linux in a nutshell book trying to
decypher
> this one but just couldn't quite get a grasp on the deletes and don't
> deletes. Now I get it. Thanks.
> 
> Steve
> 
> On Fri, 2002-10-18 at 08:43, mike808@users.sourceforge.net wrote:
> > Steve Reindl wrote:
> > > OK so I'm stupid. How do I get "hello world" out of this?
> > 
> > sed '/^[when][coders]/!d
> >     /^...[discover].$/d
> >    /^..[real].[code]$/!d
> > ' /usr/share/dict/words
> > 
> > Or:
> > sed '/^[when][coders]/!d;/^...[discover].$/d;/^..[real].[code]$/!
> > d' /usr/share/dict/words
> > 
> > 
> > 1. Start with the dictionary file (lots of words)
(/usr/share/dict/words).
> > On Solaris, this file is in /usr/share/lib/dict/words.
> > 2. Run a sed filter on it.
> > 3. Out pops "hello world". :=)
> > 
> > To explain step 2, for the sed-impaired or the synaptically
challenged:
> > 1. Patterns are bounded by "/" characters, followed by a command.
> > 2. The command is applied to the lines matching the pattern.
> > 3. "//d" would mean "get rid of the matches"
> > 4. "//!d" would mean "keep only the matches" (i.e. get rid of the
non-matches).
> > 5. /usr/share/dict/words is a file of words, one word per line.
> > 
> > Now the sed regexes, one by one:
> > A. /^[when][coders]/!d ==> keep words that start with "w", "h", "e",
or "n",
> > and then followed by a "c", "o", "d", "e", "r", or an "s".
> > 
> >    $ sed '/^[when][coders]/!d' /usr/share/dict/words
> > 
> > [898 words total, "HEllo" and "WOrld" are among them.]
> > 
> > B. /^...[discover].$/d ==> get rid of five letter words with any
letter in
> > the word "discover" as the fourth character of the word.
> > 
> >    $ sed '/^[when][coders]/!d;/^...[discover].$/d'
/usr/share/dict/words
> > 
> > [840 words total, "helLo" and "worLd" are NOT among them.]
> > 
> > C. /^..[real].[code]$/!d ==> keep only five letter words with a r,
e, a, or l
> > in the third character and c, o, d, or e as the last character.
> > 
> > [</drumroll> ... 2 words total, and "heLlO" and "woRlD" are they.]
> > 
> > QED.
> > 
> > Mike808/
> > 
> > ---------------------------------------------
> > http://www.valuenet.net
> > 
> > 
> > 
> > -
> > To unsubscribe, send email to majordomo@silug.org with
> > "unsubscribe silug-discuss" in the body.
> > 
> 
> 
> 
> -
> To unsubscribe, send email to majordomo@silug.org with
> "unsubscribe silug-discuss" in the body.
> 

	     -----------------------------------------------------
	     Richard H. Fifarek	       		rfifarek@silug.org
             -----------------------------------------------------


-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.


-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.