shell中截取字符串的方法很多

${var#*/}

${var##*/}

${var%/*}

${var%%/*}

${var:start:len}

${var:start}

${var:0-start:len}

${var:0-start}

格式

说明

${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) 获得字符串的长度

语法:

${#var}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

length=${#str}

echo "length : [${length}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

length : [61]

--------------------------------------------------------------------------------

2) 使用 # 和 ## 获取尾部子字符串

2.1) # 最小限度从前面截取word

语法:

${parameter#word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#分割符为'/'

substr=${str#*/}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [/www.fengbohello.xin3e.com/blog/shell-truncating-string]

2.2) ## 最大限度从前面截取word

语法:

${parameter##word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#分割符为'/'

substr=${str##*/}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [shell-truncating-string]

--------------------------------------------------------------------------------

3) 使用 % 和 %% 获取头部子字符串

3.1) % 最小限度从后面截取word

语法:

${parameter%word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

substr=${str%/*}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [http://www.fengbohello.xin3e.com/blog]

3.2) %% 最大限度从后面截取word

语法:

${parameter%%word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

substr=${str%%/*}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [http:]

--------------------------------------------------------------------------------

4)使用 ${var:} 模式获取子字符串

4.1) 指定从左边第几个字符开始以及子串中字符的个数

语法:

${var:start:len}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#其中的 0 表示左边第一个字符开始,7 表示子字符的总个数。

substr=${str:0:7}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [http://]

4.2) 从左边第几个字符开始一直到结束

语法:

${var:7}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#其中的 7 表示左边第8个字符开始

substr=${str:7}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [www.fengbohello.xin3e.com/blog/shell-truncating-string]

4.3) 从右边第几个字符开始以及字符的个数

语法:

${var:0-start:len}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#其中的 0-23 表示右边算起第23个字符开始,5 表示字符的个数

substr=${str:0-23:5}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [shell]

4.4) 从右边第几个字符开始一直到结束

语法:

${var:0-start}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"

echo "string : [${str}]"

#其中的 0-6 表示右边算起第6个字符开始

substr=${str:0-6}

echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]

substr : [string]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

linux 提取字符串一部分,Linux Shell 截取字符串的方法示例相关推荐

  1. linux shell 截取 第一个位置到最后一个冒号的数据,[shell]截取字符串

    @H_404_0@ shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parame ...

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

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  3. html中js判断字数截取,JS判断字符串字节数并截取长度的方法

    本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是 ...

  4. Linux Shell 截取字符串

    shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var:start} ${var:0-sta ...

  5. shell截取字符串方法

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  6. java如何使截取字符串_java中如何截取字符串中的指定一部分

    java中如何截取字符串中的指定一部分 关注:136  答案:4  mip版 解决时间 2021-02-06 13:27 提问者妳涐執唸汰深 2021-02-06 08:56 精选 比如 F:\wor ...

  7. python从字符串中抽取一部分_python如何截取字符串中特定部分

    python截取字符串中特定部分的方法:可以使用[str[beginIndex:endPosition]],其中str为需要截取的字符串,beginIndex为需要截取的第一个字符的下标,endPos ...

  8. php 按 截取字符串,PHP按符号截取字符串的指定部分

    字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 就比如说对url链接的操作:http://baijunyao.com/article/12 有时我们想截取最后一个斜杠'/'后面 ...

  9. mysql 字符串前四位_sql截取字符串前几位

    sql截取字符串前几位 sql中,使用LEFT函数即可取到字符串的前几位. LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_ ...

最新文章

  1. Spring简单总结
  2. classmethod和staticmethod
  3. 【ARM】ARM汇编程序设计(四) 选择结构
  4. JAVA ReentrantLock 分析
  5. mysql中数据定义和数据控制语言_MySQL 数据定义语言(DDL)
  6. php中的数组用什么统计,php数组元素统计与值汇总
  7. CSS中怎么让DIV水平居中
  8. 23数据错误循环冗余检查/无法读取源文件或磁盘 解决
  9. Task 03:python与word和pdf
  10. sublime text 3 php 语法错误检查
  11. Android如何实现全局的护眼模式
  12. vs打开别人cpp_和女朋友定了间主题酒店,结果打开门后崩溃了...哈哈哈哈哈照片xswl!...
  13. 从成人网站年终数据统计看各操作系统的份额表现
  14. python提取html中的href标签,如何使用Python从HTML获取href链接?
  15. 微信小程序新手留言板
  16. TIOBE 11 月编程语言:Java 首次跌出前二;基于Pytorch的Kornia可微分计算机视觉库开源...
  17. php集成Stripe支付,海外支付stripe对接支付
  18. CobaltStrike 生成office宏病毒进行钓鱼攻击
  19. 艺术源于生活而高于生活,IT编程亦是如此
  20. Leetcode0953. 验证外星语词典(simple)

热门文章

  1. PayPal API风格指南和设计模式
  2. 大数据营销要学会做减法
  3. linux awk(good)
  4. 国内外有名的安全扫描工具,你知道几个?
  5. 关于FTP上传方法 (by Liang)
  6. 设计模式之三 装饰模式
  7. 跟小静读CLR via C#(02)-基元类型、引用类型、值类型
  8. Struts学习(五):对POJO对象访问的支持
  9. 如何使用VMware Converter进行P2V热迁移
  10. 设计模式笔记(1)---开篇(文章索引)