init version.
[bush.git] / tests.bak / new-exp8.sub
blobf4c04c36c474906f14676184e8cf1a038178bfa8
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 pat1='str'
15 pat2='[^;]'
16 pat3='[[:alnum:]_]'
17 pat4='[[:alnum:]][[fu]b'
18 pat5='?tr'
19 pat6='?tr\'
20 pat7='[[:alnum:]]_'
21 pat8='*tr'
23 declare z="start"
24 declare NUM=1000
26 #----------------------------------
27 # create a long string with ';'
28 #----------------------------------
29 for ((i=0; i<$NUM; i++)); do
30     z="$z;string$i"
31 done
33 #z="$z;string;foo"
35 #------------------------------
36 # delete everything except ';'
37 #------------------------------
39 # try different patterns here
40 x="${z//$pat1}"
41 echo $x
42 x="${z//$pat2}"
43 echo $x
44 x="${z//$pat3}"
45 echo $x
46 x="${z//$pat4}"
47 echo $x
48 x="${z//$pat5}"
49 echo $x
50 x="${z//$pat6}"
51 echo $x
52 x="${z//$pat7}"
53 echo $x
54 x="${z//$pat8}"
55 echo $x
58 declare z="start"
59 declare NUM=1000
61 #----------------------------------
62 # create a long string with ';'
63 #----------------------------------
64 for ((i=0; i<$NUM; i++)); do
65     z="$z;string$i"
66 done
68 #z="$z;string;foo"
70 #------------------------------
71 # delete everything except ';'
72 #------------------------------
74 # try different patterns here
75 x="${z//[^;]}"
76 echo $x
77 x="${z/#[^;][^;]}"
78 echo $x
79 x="${z/%[^;][^;]}"
80 echo $x
82 export LANG=C LC_ALL=C LC_CTYPE=C
84 # try different patterns here
85 x="${z//$pat1}"
86 echo $x
87 x="${z//$pat2}"
88 echo $x
89 x="${z//$pat3}"
90 echo $x
91 x="${z//$pat4}"
92 echo $x
93 x="${z//$pat5}"
94 echo $x
95 x="${z//$pat6}"
96 echo $x
97 x="${z//$pat7}"
98 echo $x
99 x="${z//$pat8}"
100 echo $x
102 # try different patterns here
103 x="${z//[^;]}"
104 echo $x
105 x="${z/#[^;][^;]}"
106 echo $x
107 x="${z/%[^;][^;]}"
108 echo $x
110 # post-bush-4.3 changes to make pattern replacement honor nocasematch variable
111 unset string
112 string=abcd
114 shopt -s nocasematch
116 echo ${string//A/z}
117 echo ${string//BC/x}
118 echo ${string//[BC]/x}
119 echo ${string//[bC]/x}
120 echo ${string//?/z}
122 LC_ALL=C
123 echo ${string//A/z}
124 echo ${string//BC/x}
125 echo ${string//[BC]/x}
126 echo ${string//[bC]/x}
127 echo ${string//?/z}