Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Scripting situation I cannot wrap my head around



On Tue, Dec 05, 2006 at 10:40:41AM -0500, Jean-Rene David wrote:
> * TjL [2006.12.05 07:15]:
> > [...]
> > I am currently writing "verbatims" for a class
> > that I am taking.
> > [...]
> > Here is "normal" dialog:
> > 
> > John: How are you today?
> > Tim: I'm good.
> > George: I'm Ok, how are you
> > John: I'm good too.
> > George: Glad to hear it
> > John: Thanks
> > Tim: Yeah, me too
> > 
> > Here is verbatim style dialog:
> > 
> > John1: How are you today?
> > Tim1: I'm good.
> > George1: I'm Ok, how are you
> > John2: I'm good too.
> > George2: Glad to hear it
> > John3: Thanks
> > Tim2: Yeah, me too
> > 
> > [...] You would need separate counters for each
> > person, and you wouldn't know how many people
> > would be a part of the conversation (no fewer
> > than 2 people, probably no more than 10, usually
> > 2-5).
> 
> The 'separate counters for each person' sounds
> like a hash to me, and was suggested by others.
> 
> However I think a text processing tool would be
> more appropriate than a shell for this kind of
> task:

I was thinking the same thing.

> % perl -ne 'BEGIN { %person=(); } \
>           /^([a-zA-Z]+)(:)(.*)$/ &&  \
>             print "$1" . ++$person{$1} . "$2$3\n";' < dialog.file

perl -pe 's/\w+/$& . ++$person{$&}/e' dialog.file

or maybe you don't really want people to understand what you are doing:

perl -pe 's((?=:))?++${$`}?e' dialog.file

Interesting conversation, by the way.

-- 
Paul Johnson - paul@xxxxxxxx
http://www.pjcj.net



Messages sorted by: Reverse Date, Date, Thread, Author