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

Re: [OT] Text stream editing problem



At Mon, 8 Sep 2003 11:41:17 +0100,
Karsten M. Self wrote:
> 
> [1  <text/plain; us-ascii (quoted-printable)>]
> on Mon, Sep 08, 2003 at 12:56:14PM +0800, csj (csj@zapo.net) wrote:
> > At Mon, 8 Sep 2003 01:58:43 +0100,
> > Karsten M. Self wrote:
> > > 
> > > [1  <text/plain; us-ascii (quoted-printable)>]
> > > on Mon, Sep 08, 2003 at 12:33:39AM +0800, csj (csj@zapo.net) wrote:
> > > > Let's say I want to write a script that can convert the
> > > > following:
> > > > 
> > > > A-0001     Directory_1/Subdirectory_1/File_1.txt
> > > > A-0002     ./Directory_2/Subdirectory_2/File_2.txt
> > > > A-0003     ./Directory_3/Subdirectory_3/Subdirectory_4/File_3.txt
> > > > 
> > > > to:
> > > > 
> > > > A-0001     /Subdirectory_1/File_1.txt
> > > > A-0002     /Subdirectory_2/File_2.txt
> > > > A-0003     /Subdirectory_3/Subdirectory_4/File_3.txt
> > > > 
> > > > My basic strategy would be to sed 's|/Directory_.||g'.
> > > > Unfortunately this isn't of universal application.  I'm looking
> > > > for a solution than can take into account all possible names for
> > > > "Dir_Foo".
> > > 
> > > Based on what you've presented:
> > > 
> > >     sed -e 's/[ 	]\.*\(\/Subdirectory_\)/	\1/'
> > 
> > My brain is still trying to parse the slashes, but I take it to
> > me that the trick is in the parenthesis()?  Will try it when I
> > get some sleep. Thanks!
> 
> What it says is: substitute everything starting with the first
> space or tab, any character, the string (which is preserved)
> "/Subdirectory_", with a tab and the preserved string.
> 
> Thinking about it, this might be better:
> 
>     s/[ 	][^ 	]*\(\/Subdirectory_\)/	\1/
> 
> Which says:  tab, followed by non-whitespace characters...

Then this wouldn't work for the non-specific cases I have in
mind.  Both "Directory" and "Subdirectory" are variable.  It can
be ./Foo ./Dirfoo ./Pooh.  I need to descend a certain number of
subdirectories (/'s) down.  BTW I just realized I have been using
the regex forms you cited for a long time.  In my .procmailrc!

Thanks again.  I'll try to approach the problem from a different
perspective.



Reply to: