shell script - variable substitution summary

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

 

Guess you like

Origin blog.csdn.net/ChaoLi_Chen/article/details/102690592