Linux Shell 截取字符串的方法示例
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
shell中截取字符串的方法很多
1 2 3 4 5 6 7 8 | ${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) 获得字符串的长度
语法:
示例代码:
1 2 3 4 5 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" length=${ #str} echo "length : [${length}]" |
执行结果:
--------------------------------------------------------------------------------
2) 使用 # 和 ## 获取尾部子字符串
2.1) # 最小限度从前面截取word
语法:
示例代码:
1 2 3 4 5 6 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #分割符为'/' substr=${str #*/} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [ /www .fengbohello.xin3e.com /blog/shell-truncating-string ] |
2.2) ## 最大限度从前面截取word
语法:
示例代码:
1 2 3 4 5 6 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #分割符为'/' substr=${str ##*/} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [shell-truncating-string] |
--------------------------------------------------------------------------------
3) 使用 % 和 %% 获取头部子字符串
3.1) % 最小限度从后面截取word
语法:
示例代码:
1 2 3 4 5 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" substr=${str%/*} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [http: //www .fengbohello.xin3e.com /blog ] |
3.2) %% 最大限度从后面截取word
语法:
示例代码:
1 2 3 4 5 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" substr=${str%%/*} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [http:] |
--------------------------------------------------------------------------------
4)使用 ${var:} 模式获取子字符串
4.1) 指定从左边第几个字符开始以及子串中字符的个数
语法:
示例代码:
1 2 3 4 5 6 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #其中的 0 表示左边第一个字符开始,7 表示子字符的总个数。 substr=${str:0:7} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [http: // ] |
4.2) 从左边第几个字符开始一直到结束
语法:
示例代码:
1 2 3 4 5 6 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #其中的 7 表示左边第8个字符开始 substr=${str:7} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [www.fengbohello.xin3e.com /blog/shell-truncating-string ] |
4.3) 从右边第几个字符开始以及字符的个数
语法:
示例代码:
1 2 3 4 5 6 | 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}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [shell] |
4.4) 从右边第几个字符开始一直到结束
语法:
示例代码:
1 2 3 4 5 6 | str= "http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #其中的 0-6 表示右边算起第6个字符开始 substr=${str:0-6} echo "substr : [${substr}]" |
执行结果:
1 2 | string : [http: //www .fengbohello.xin3e.com /blog/shell-truncating-string ] substr : [string] |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
最新评论