LinuxShell截取字符串的⽅法⽰例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="www.fengbohello.xin3e/blog/shell-truncating-string"
echo "string : [${str}]"
length=${#str}
echo "length : [${length}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string]
length : [61]
--------------------------------------------------------------------------------
2) 使⽤ # 和 ## 获取尾部⼦字符串
2.1) # 最⼩限度从前⾯截取word
语法:
${parameter#word}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string"
echo "string : [${str}]"
#分割符为'/'
substr=${str#*/}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [/www.fengbohello.xin3e/blog/shell-truncating-string]
2.2) ## 最⼤限度从前⾯截取word
语法:
${parameter##word}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
#分割符为'/'
substr=${str##*/}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [shell-truncating-string]
--------------------------------------------------------------------------------3) 使⽤ % 和 %% 获取头部⼦字符串
3.1) % 最⼩限度从后⾯截取word
语法:
${parameter%word}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
substr=${str%/*}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [www.fengbohello.xin3e/blog]
3.2) %% 最⼤限度从后⾯截取word
语法:
shell 字符串长度${parameter%%word}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
substr=${str%%/*}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [http:]
--------------------------------------------------------------------------------4)使⽤ ${var:} 模式获取⼦字符串
4.1) 指定从左边第⼏个字符开始以及⼦串中字符的个数
语法:
${var:start:len}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
#其中的 0 表⽰左边第⼀个字符开始,7 表⽰⼦字符的总个数。substr=${str:0:7}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : []
4.2) 从左边第⼏个字符开始⼀直到结束
语法:
${var:7}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
#其中的 7 表⽰左边第8个字符开始
substr=${str:7}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [www.fengbohello.xin3e/blog/shell-truncating-string]
4.3) 从右边第⼏个字符开始以及字符的个数
语法:
${var:0-start:len}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
#其中的 0-23 表⽰右边算起第23个字符开始,5 表⽰字符的个数substr=${str:0-23:5}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string] substr : [shell]
4.4) 从右边第⼏个字符开始⼀直到结束
语法:
${var:0-start}
⽰例代码:
str="www.fengbohello.xin3e/blog/shell-truncating-string" echo "string : [${str}]"
#其中的 0-6 表⽰右边算起第6个字符开始
substr=${str:0-6}
echo "substr : [${substr}]"
执⾏结果:
string : [www.fengbohello.xin3e/blog/shell-truncating-string]
substr : [string]
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。