[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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.