Linux环境shell脚本:编程截取字符串

下面列出常用的几种方法

${#var} # 获取字符串长度length
${var#/} # 以‘/’为分隔符,满足一个条件取右边的所有字符串
${var##
/} # 以‘/’为分隔符,满足最后条件取右边的所有字符串
${var%/} # 以‘/’为分隔符,取满足第一个条件左边的所有字符串
${var%%/
} # 以‘/’为分隔符,取满足最后条件左边的所有字符串
${var:start:len} # 字符串截取,从0角标开始到结束,取左不取右,
${var:start} # 字符串截取,没有右边界,直接从左边取到最右
${var:0-start:len} # 其中0-start是取右边的第start个字符,取len个字符
${var:0-start} # 从右边的第start个字符开始往右取

示例:vim test.sh
#!/bin/sh

var=http://www.baidu.com/index?reffer=www.jd.com/index

echo "获取字符串长度:${#var}"

echo "以/为分隔符获取后面所有的字符串:${var#*/}"

echo "以/为分隔符号获取最后一个/后面的字符串:${var##*/}"

echo "满足第一个条件取左边:${var%/*}"

echo "满足最后一条件取左边:${var%%/*}"

echo "从0开始取到5,取左不取右:${var:0:6}"

echo "从第12个取到最后面:${var:12}"

echo "从右边取14个,再往右取6个:${var:0-14:6}"

echo "最右取5个:${var:0-5}"

执行脚本 sh test.sh 结果输出:

获取字符串长度:50
以/为分隔符获取后面所有的字符串:/www.baidu.com/index?reffer=www.jd.com/index
以/为分隔符号获取最后一个/后面的字符串:index
满足第一个条件取左边:http://www.baidu.com/index?reffer=www.jd.com
满足最后一条件去左边:http:
从0开始取到5,取左不取右:http:/
从第12个取到最后面:aidu.com/index?reffer=www.jd.com/index
从右边取14个,再往右取6个:w.jd.c
最右取5个:index

注:只是突然在jenkins构建job时,使用了git自动获取分支是带origin远程分支,但是脚本又有origin,打包分支会出现重复,所以不打算修改脚本,而是通过参数穿过来截取/后面的分支;
即:获取origin/fetch_fix,通过截取获得fetch_fix分支以变量${branch}传给脚本执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

职说测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值