Flash Notes

Strings - Prefixes and suffixes handling


• How to display a variable's content without its prefix ?

Solution

echo ${variable#prefix}

Example 1

$ var="xxx_alpha_123"

$ echo ${var#xxx_}
alpha_123

$ pref="xxx_"
$ echo ${var#$pref}
alpha_123

Example 2

$ x=aaabbbccc  

$ echo ${x#a*b}
bbccc

Description

Substitute the longest matching string :

Example 1

$ x=aaabbbccc  

$ echo ${x##a*b}
ccc

• How to display a variable's content without its suffix ?

Solution

echo ${variable%prefix}

Example 1

$ x=aaabbbccc  

$ echo ${x%b*c}
aaabb

Description

Substitute the longest matching string :

Example 1

$ x=aaabbbccc  

$ echo ${x%%b*c}
aaa

• How to display a variable's content and substitute a string by another one ?

Solution

echo ${variable/old string/new string}

Example 1

$ x=aaabbbccc  
$ echo ${x/a/FOO_}
FOO_aabbbccc

Description

Substitute the longest matching string :

Example 1

$ x=aaabbbccc  
$ echo ${x//a/FOO_}
FOO_FOO_FOO_bbbccc

•  ?

Solution

-

Example 1

$ echo ${x/#a/A}
Aaabbbccc


$ echo ${x/%c/C}
aaabbbccC

$ echo ${x/b/}
aaabbccc

 $ echo ${x//b/}
 aaaccc

 $ echo ${x^}
 Aaabbbccc
 
 $ echo ${x^^}
 AAABBBCCC

$ echo ${x^a}
Aaabbbccc

$ echo ${x^^a}
AAAbbbccc

$ X=AAABBBCCC
$ echo ${X,}
aAABBBCCC

$ echo ${X,,}
aaabbbccc

$ echo ${x^b}
aaabbbccc

$ echo ${x^^b}
aaaBBBccc