on Mon, Sep 08, 2003 at 12:56:14PM +0800, csj ([EMAIL PROTECTED]) 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 ([EMAIL PROTECTED]) 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...

Peace.

-- 
Karsten M. Self <[EMAIL PROTECTED]>        http://kmself.home.netcom.com/
 What Part of "Gestalt" don't you understand?
    Defeat EU Software Patents!                         http://swpat.ffii.org/

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to