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

${var#*/}
${var##*/}
${var%/*}
${var%%/*}
${var:start:len}
${var:start}
${var:0-start:len}
${var:0-start}


下面用几个例子展示一下:

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]

转载于:https://www.cnblogs.com/kakaisgood/p/11375570.html

Linux Shell 截取字符串相关推荐

  1. linux 提取字符串一部分,Linux Shell 截取字符串的方法示例

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

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

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

  3. shell截取字符串方法

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

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

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

  5. Linux shell去除字符串中所有空格

    Linux shell去除字符串中所有空格 echo $VAR | sed 's/ //g' 转载于:https://www.cnblogs.com/yjd_hycf_space/p/9839494. ...

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

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

  7. Linux shell 的字符串截取

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

  8. linux 正则截取字符串,Linux的Shell脚本——day4——字符串截取、正则

    零散知识点 ftp操作: ftp 服务器IP  连接ftp,可以进行交互操作 注意搭建ftp服务是vsftpd,要区别 特殊的一个常用 ${#变量}  统计变量的长度位数 脚本中对一个文件进行撰写 c ...

  9. linux 怎么截取字符串,Linux中截取字符串

    第一种 ${parameter%word} #最小限度从后面截掉word ${parameter%%word} #最大限度从后面截掉word ${parameter#word} #最小限度从前面截掉w ...

最新文章

  1. 第十六届智能车竞赛参赛队伍提问-6-11
  2. 【Greenplum异常】数据库报错 could not create temporary file No space left on device(求解决)
  3. Spring MVC - Hello World示例
  4. 理想的 ASP.NET AJAX (Part 1 - Client Centric)
  5. React开发(133):ant design学习指南之form中input加前缀
  6. linux CentOS7 最小化安装环境静默安装Oracle11GR2数据库(安装操作系统环境_01)
  7. http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库
  8. ubuntu如何解压.tar.gz
  9. mysql 最小值对应的其他属性_查询最小值对应的非group by字段
  10. macos 10.15.2 iso镜像网盘下载
  11. 笔记本连接android手机屏幕,实现手机、电脑屏幕共享的7个步骤
  12. Meltdown攻击
  13. 基于JSP(java)网络百宝箱的设计和实现(含源文件)
  14. HMI-51-【多媒体】搞地图 1
  15. Android监听消息(一)——应用消息捕获
  16. selenium源码通读·12 |webdriver/remote分析
  17. 计算机图形学(三种画线算法)
  18. 计算机房里面味道很大,搞笑段子:我负责单位的计算机房,同事的计算机有问题来向我讨教...
  19. 牛客小白月赛24 J—建设道路
  20. gitlab邮件发不出去解决方法

热门文章

  1. python windows系统调用_python日记第四章:python用os和sys模块进行系统调用
  2. 初识python教学反思_[python第一课]初识python
  3. 卖任小龙java视频,任小龙Java大神之路(第九季 SpringMVC)视频教程叩丁狼教育出品...
  4. hbuilder入门之基本配置(php)
  5. python【数据结构与算法】棋盘覆盖问题
  6. 机器学习(MACHINE LEARNING)灰色关联分析(GRA)
  7. HDU 2037 今年暑假不AC【贪心】
  8. java集群调度_Cuckoo-Schedule
  9. mysql 修改配置生效_linux下面MySQL变量修改及生效
  10. 718保时捷spyder_我要买保时捷718 Spyder的原因:新手也可以玩手动