假设有变量 var=http://www.aaa.com/123.htm.

1. # 号截取,删除左边字符,保留右边字符。

1
echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

1
echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/

结果是 123.htm

3. %号截取,删除右边字符,保留左边字符

1
echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.aaa.com

4. %% 号截取,删除右边字符,保留左边字符

1
echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:

5. 从左边第几个字符开始,及字符的个数

1
echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:

6. 从左边第几个字符开始,一直到结束。

1
echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm

7. 从右边第几个字符开始,及字符的个数

1
echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123

8. 从右边第几个字符开始,一直到结束。

1
echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。
结果是:123.htm

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

汇总

最后,我们对以上 8 种格式做一个汇总,请看下表:

格式 说明
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%chars*} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%chars*} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

最新文章

  1. Android数据存储之SQLCipher数据库加密
  2. 【Java EE 学习 79 上】【mybatis 基本使用方法】
  3. Samsung I9103刷cm-10.1的方法
  4. web安全之sql注入原理
  5. mongoDB安装学习
  6. J2EE开发规范
  7. 357. Count Numbers with Unique Digits
  8. 百度搜索附近加盟店等基于LBS云搜索功能的实现
  9. aix光盘安装包 aix puppet agent 自动化安装
  10. 【原创】01-1. 基于 checked 关于 attribute 和 property 的理解
  11. 【开发技术】storyboard和nib的差别
  12. 支付宝wap支付调起客户端
  13. java操作svn工具类SvnUtil
  14. POJ 2513 Colored Sticks (欧拉回路+并查集+字典树)
  15. java正则表达式使用
  16. vue-webpack 引入echarts 注意事项
  17. TreeMap实现原理及源码分析之JDK8
  18. 20155306 2016-2017-2 《Java程序设计》第七周学习总结
  19. mac 升级10.12 php debug 环境 跑不起的解决 解决方案
  20. [转]高品质开源工具Chloe.ORM:支持存储过程与Oracle

热门文章

  1. Ubuntu 挂载硬盘命令介绍
  2. scp 基本用法(提高scp传输速度)
  3. Javascript/js 的浅拷贝与深拷贝(复制)学习随笔
  4. Js基本语句
  5. JDK8 stream用法
  6. Tuple VS ValueTuple
  7. ML- 线性回归推导
  8. Golang: 模拟搜索引擎爬虫
  9. mysql毫秒数引发的问题
  10. PAT 乙级 1076.Wifi密码