二、shell变量内容的删除、替换、切片

shell变量内容的删除、替换、切片

目录

  • shell变量内容的删除、替换、切片
  • 变量内容的删除
    • 一、变量内容删除,从左向右删除
      • 1.显示变量的字符长度
      • 2.${变量名#*匹配的内容}:删除某个变量中匹配的内容
      • 3.${变量名##*匹配的内容} :贪婪删除变量中匹配的内容
    • 二、变量内容删除,从右向左删除
  • 变量索引切片
    • 1.切出www
    • 2.切出baidu.com
  • 变量值的替换

变量内容的删除

一、变量内容删除,从左向右删除

${#…} 从左向右删除
${…#…} 最短匹配删除
${…##…} 贪婪匹配删除
${#变量名}:查看变量值的长度

1.显示变量的字符长度

[root@localhost shell]# url=www.baidu.com
[root@localhost shell]# echo ${url}
www.baidu.com
[root@localhost shell]# echo ${#url}
13

2.${变量名#*匹配的内容}:删除某个变量中匹配的内容

从一个变量内容的左侧,向右侧删除,从左第一位开始匹配
[root@localhost shell]# echo ${url}
www.baidu.com

从左向右匹配到第一个 . 的内容,全部删除
[root@localhost shell]# echo ${url#*.}
www. baidu.com

从左向右匹配到两个W 的内容,全部删除
[root@localhost shell]# echo ${url#ww}
ww w.baidu.com

从左向右匹配到 www.bai的内容,全部删除
[root@localhost shell]# echo ${url#www.bai}
www.bai du.com

从左向右匹配到
[root@localhost shell]# echo ${url#*i}
www.bai du.com

3.${变量名##*匹配的内容} :贪婪删除变量中匹配的内容

[root@localhost shell]# echo ${url}
www.baidu.com

从左向右匹配,到W之前字符。全部删除
[root@localhost shell]# echo ${url##*w}
www .baidu.com

从左向右匹配,到 .之前的字符。全部删除
[root@localhost shell]# echo ${url##*.}
www.baidu. com


二、变量内容删除,从右向左删除

${%…} 从右向左删除
${…%…} 最短匹配删除
${…%…} 贪婪匹配删除

[root@localhost shell]# echo ${url}
www.baidu.com

从右向左匹配,匹配到.com的内容,全部删除
[root@localhost shell]# echo ${url%.com}
www.baidu~~.com~~

从右向左贪婪匹配,匹配到所有.之前的内容,全部删除
[root@localhost shell]# echo ${url%%.*}
www~~.baidu.com~~

从右向左匹配,匹配到.baidu之前的内容,全部删除
[root@localhost shell]# echo ${url%.baidu*}
www~~.baidu.com~~


变量索引切片

[root@localhost shell]# echo ${url}
w w w . b a i d u . c o m
0 1 2 3 4 5 6 7 8 9 10 11 12

1.切出www

echo ${url:0:3}

2.切出baidu.com

echo ${url:4:13}


变量值的替换

格式:$变量/旧值/新值

[root@localhost shell]# echo ${url}
www.baidu.com

将url变量的内容中,baidu 替换成 xinlang
[root@localhost shell]# echo ${url/baidu/xinlang}
www.xinlang.com

将url变量的内容中,com 替换成 cn
[root@localhost shell]# echo ${url/com/cn}
www.baidu.cn

你可能感兴趣的:(shell)