${expression}一共有9种使用方法:
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
上面4种可以用来进行缺省值的替换。

${#parameter}
上面这种可以获得字符串的长度。
${parameter%word} 最小限度从后面截取word
${parameter%%word} 最大限度从后面截取word
${parameter#word} 最小限度从前面截取word
${parameter##word} 最大限度从前面截取word
上面4个就是用来截取字符串的方法了。
有了着四种用法就不必使用cut命令来截取字符串了
第一种又可以分为四种情况,下面一一介绍。1、使用 # 号操作符。用途是从左边开始删除第一次出现子字符串即其左边字符,保留右边字符。用法为#*substr,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str#*//}
得到的结果为www.你的域名.com/cut-string.html,即删除从左边开始到第一个"//"及其左边所有字符2、使用 ## 号操作符。用途是从左边开始删除最后一次出现子字符串即其左边字符,保留右边字符。用法为##*substr,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str##*/}
得到的结果为cut-string.html,即删除最后出现的"/"及其左边所有字符
3、使用 % 号操作符。用途是从右边开始删除第一次出现子字符串即其右边字符,保留左边字符。用法为%substr*,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str%/*}
得到的结果为http://www.你的域名.com,即删除从右边开始到第一个"/"及其右边所有字符
4、使用 %% 号操作符。用途是从右边开始删除最后一次出现子字符串即其右边字符,保留左边字符。用法为%%substr*,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str%%/*}
得到的结果为http://www.你的域名.com,即删除从右边开始到最后一个"/"及其右边所有字符第二种也分为四种,分别介绍如下:
1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
2、从左边第几个字符开始一直到结束,用法为:start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:7}
其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html
3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-15:10}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string
3、从右边第几个字符开始一直到结束,用法:0-start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-4}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:html
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

shell 脚本字符串 分割或截取相关推荐

  1. shell脚本字符串截取

    shell脚本字符串截取的8种方法 假设变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 va ...

  2. shell脚本字符串截取的8种方法

    shell脚本字符串截取的8种方法 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 1 echo ${var#*//} 其中 ...

  3. OC字符串分割,截取,转换,拼接

    本篇文章主要阐述IOS字符串分割,截取,转换,拼接的一些逻辑,看是否含有分割符,主要介绍了两种方式,一种没有任何分割符的数据,一个带有分割符的数据. 一:首先,这里是没有分割符的一串数据,比如底层传递 ...

  4. linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  5. shell脚本——字符串 数组

    字符串 字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单 ...

  6. shell脚本-字符串和变量

    变量.字符串 定义变量+查看变量值 name=jerry #定义变量值 # echo $name jerry #查找变量值 变量类型:运行shell时,会同时存在三种变量 局部变量:仅在当前shell ...

  7. shell脚本--字符串处理和动态数组

    Linux下的文本处理命令,以清晰的列分割数据为高效处理源: awk 的gsub函数可替换指定字符串 echo "<tr><td>col1</td>< ...

  8. 日常笔记》》》字符串分割、截取等操作

    ① 根据特定字符分割 string str="xxx.html"; string[] arr=str.Split('.'); ② LastIndexof() 根据特定字符获取该字符 ...

  9. 技术收藏之linux shell 将字符串分割成数组

    原文链接:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/ a="one,two,three,four& ...

最新文章

  1. HTML5 Canvas 绘制库存变化折线 增加超储告罄线
  2. Netbeans学习总结
  3. 【放置奇兵】算法 PVE总结
  4. 小猿圈Java学习之通过命令行设置属性值
  5. Struts2(补充)
  6. atitit.java解析sql语言解析器解释器的实现
  7. Java中居然有一个存在十几年的bug...
  8. keras 中文文档学习一
  9. linux stubs 32.h,解决 error: gnu/stubs-32.h: No such file or directory
  10. JS模块化CommonJS、ES6模块化 、AMD、CMD知识总结
  11. C++之Queue容器初学
  12. 水晶报表A4纸打印两张中一刀凭证
  13. React hooks中swr的原理和源码解析
  14. 一个离开大厂的产品经理,和她为数百万小微企业创造的“神器”
  15. (转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass
  16. 小眼游戏架构:UI篇:系统功能(新手引导)
  17. sql注入的原理分析
  18. Python —— 解析Yolov5 - detect.py
  19. 工商管理管理学知识归纳
  20. 【windows】jar包不显示java图标,反而显示的是白色

热门文章

  1. centos 下 r graphics绘图如何保存_如何选购一台合适的商务笔记本电脑
  2. java 字符界面 curses_[C++]Linux之图形界面编程库[curses库]之入门教程
  3. linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用
  4. !DOCTYPE html的内容讲解
  5. python canny函数_python库skimage 应用canny边缘探测算法
  6. 语言木头折断放置问题_木头文化:干燥,是木成材的关键一步
  7. linux0.11中断描述符,Linux 0.11总结
  8. Python Pandas导出Hbase数据到dataframe
  9. Markdown 添加emoji
  10. Linux安装mysql(解决E: Package ‘mysql-server‘ has no installation candidate与ERROR 1698 (28000))