bug-bash
[Top][All Lists]
Advanced

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

extglob pattern matching does not work as in bash 2


From: os
Subject: extglob pattern matching does not work as in bash 2
Date: Wed, 7 Jan 2009 11:06:12 +0100
User-agent: Mutt/1.5.9i

Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' 
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/local/share/locale' -DPACKAGE='bash' 
-DSHELL -DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib   -g -O2
uname output: Linux linux1 2.6.26-bpo.1-686 #1 SMP Thu Dec 18 23:55:11 UTC 2008 
i686 GNU/Linux
Machine Type: i686-pc-linux-gnu

Bash Version: 3.2
Patch Level: 48
Release Status: release

Description:
        After updating to a new distribution with bash version 3.x entglob does
        not work like in bash version 2.x.
        We have a script which needs to remove every whitespace before and
        after a "," in a variable.

Repeat-By:
        GNU bash, version 3.2.48(1)-release (i686-pc-linux-gnu)
        # Does not work
        $ shopt -s extglob
        $ TEST="12345, 12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345, 12345

        $ TEST="12345 , 12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345 , 12345
        echo ${TEST//*([[:space:]]),/,}
        12345 , 12345

        $ TEST="12345,12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345,12345

        # Works
        $ TEST="12345 , 12345"
        $ echo ${TEST//,*([[:space:]])/,}
        12345 ,12345

        GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
        $ shopt -s extglob
        $ TEST="12345, 12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345,12345
        $ TEST="12345 , 12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345,12345
        $ TEST="12345,12345"
        $ echo ${TEST//*([[:space:]]),*([[:space:]])/,}
        12345,12345




reply via email to

[Prev in Thread] Current Thread [Next in Thread]