[PATCH] Ash support for replace and subsitution

James Simmons jsimmons at infradead.org
Tue Mar 25 20:42:36 UTC 2008


> On Monday 24 March 2008 17:17, James Simmons wrote:
> > 
> > diff -urwN busybox-1.10.0.orig/shell/ash.c busybox-1.10.0/shell/ash.c
> > --- busybox-1.10.0.orig/shell/ash.c	2008-03-24 11:58:50.000000000 -0400
> > +++ busybox-1.10.0/shell/ash.c	2008-03-24 12:28:26.000000000 -0400
> > @@ -476,6 +476,9 @@
> >  #define VSTRIMLEFT      0x8             /* ${var#pattern} */
> >  #define VSTRIMLEFTMAX   0x9             /* ${var##pattern} */
> >  #define VSLENGTH        0xa             /* ${#var} */
> > +#define VSSUBSTR	0xc		/* ${var:position:length} */
> > +#define VSREPLACE	0xd		/* ${var/pattern/replacement} */
> > +#define VSREPLACEALL	0xe		/* ${var//pattern/replacement} */
> 
> If it really works as advertised, it's very nice!

Great. You can test the below before and after the patch

#!/bin/bash

MYFOOD="chickensoup.tar.gz"

echo "Does myfood ${MYFOOD%%.*} equal chickensoup"
echo "Does myfood ${MYFOOD%.*} equal chickensoup.tar"
echo "Does myfood ${MYFOOD%%soup} equal chicken"
echo "Does myfood ${MYFOOD:0:5} equal chick"
echo "Does myfood ${MYFOOD:7:4} equal soup"




More information about the busybox mailing list