Am 16.04.2013 um 15:16 hat Stefan Hajnoczi geschrieben: > On Tue, Apr 16, 2013 at 06:26:38AM -0600, Eric Blake wrote: > > On 04/16/2013 03:48 AM, Kevin Wolf wrote: > > > $QEMU_PROG happens to be 'qemu' in my setup, so this sed command > > > replaces a bit too much. Restrict it to the start of the line and to > > > when it's followed by a colon, i.e. the form used by error messages. > > > > > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > > > --- > > > tests/qemu-iotests/common.filter | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/tests/qemu-iotests/common.filter > > > b/tests/qemu-iotests/common.filter > > > index bc5f250..a7f889a 100644 > > > --- a/tests/qemu-iotests/common.filter > > > +++ b/tests/qemu-iotests/common.filter > > > @@ -155,7 +155,7 @@ _filter_qemu_io() > > > # replace occurrences of QEMU_PROG with "qemu" > > > _filter_qemu() > > > { > > > - sed -e "s#$(basename $QEMU_PROG)#QEMU_PROG#g" > > > + sed -e "s#^$(basename $QEMU_PROG):#QEMU_PROG:#g" > > > > Why spawn a basename process, when you can use shell to do the same? > > Also, the g modifier is worthless once you have a ^ anchor, since sed > > can only replace one ^ per line. And you don't need sed's -e option for > > a single script. > > sed -e is the convention in qemu-iotests. > > Dropping the 'g' would be nice.
Okay, I just updated the commit to drop the 'g'. > The problem with the POSIX shell string replacement is that the syntax > is horrible. I can never remember what ${%}, ${%%}, ${#} and > %{##} do. $(basename $QEMU_PROG) is clear (although it doesn't handle > spaces in the filename!). That's exactly my problem as well. Kevin