Linux Shell 截取字符串的方法示例
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]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。