Carried out operations using shell scripts to delete # and% delete characters to match specific # and% are summarized below:
${变量#匹配规则} # 从头开始匹配,最短删除
${变量##匹配规则} # 从头开始匹配,最长删除
${变量%匹配规则} # 从尾部开始匹配,最短删除
${变量%%匹配规则} # 从尾部开始匹配,最长删除
${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个
${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换
A few examples will be described below
1. With regard to the replacement rule #
~$ vari_1="I love you,Do you love me"
~$ echo $vari_1
I love you,Do you love me
# 只有一个#的时候 匹配到第一个 ov 之后就停下来了
~$ var1=${vari_1#*ov}
~$ echo $var1
e you,Do you love me # 匹配到第一个 ov停下
#配到最后一个ov 最后一个ov之前的全部删除
~$ var1=${vari_1##*ov}
~$ echo $var1
e me
2. With regard% of substitution rules
# %和#顺序刚好是相反的 单个% 是从后向前截取,碰到倒数第一个ov 删除 最后一个ov之后的字符串
~$ var1=${vari_1%ov*}
~$ echo $var1
I love you,Do you l
# %% 是从后匹配 一直匹配到第一个 ov出现的位子,保留字符串开始到 第一次ov出现的位置
~$ var1=${vari_1%%ov*}
~$ echo $var1
I l
3. The rules on matching / // and the
# 单个/ 只是将第一个love替换为 大写的 LOVE
~$ var1=${vari_1/love/LOVE}
~$ echo $var1
I LOVE you,Do you love me
# // 是将全部的love替换为 大写的 LOVE
~$ var1=${vari//love/LOVE}
~$ echo $var1
I LOVE you,Do you LOVE me