Shell脚本——字符串截取

假设变量var值为http://www.abc.com/123.html;

使用${}与#、##、%或%%的结合实现字符串截取


一、${var##*/}

删除变量var从左边算起的最后一个'/'字符及其左边的内容,返回处理后的字符串;

# echo ${var##*/}
123.html

若在shell脚本中,可将处理后的结果赋值给变量;


二、${var#*/}

删除变量var从左边算起第一个'/'字符及其左边的内容,返回处理后的字符串;

# echo ${var#*//}
www.abc.com/123.html


三、${var%%/*}

删除变量var从右边算起的最后一个'/'字符及其右边的内容,返回处理后的字符串;

# echo ${var%%/*}
http:


四、${var%/*}

删除变量var从右边算起的第一个'/'字符及其右边的内容,返回处理后的字符串;

# echo ${var%/*}
http://www.abc.com


注:

*表示要删除内容,对于在%或#的位置不能互换!

/表示删除的截止位置,可以是其他字符;


五、指定字符串区间

1 从左边第n个字符开始,及字符个数

# echo ${var:0:4}
http


2 从左边第n个字符开始,一直到结束

# echo ${var:7}
www.abc.com/123.html


3 从右边第n个字符开始,及字符个数

# echo ${var:0-8:3}
123


4 从右边第n个字符开始,一直到结束

# echo ${var:0-8}
123.html


注:左边第一个字符用0表示,右边第一个字符用0-1表示;

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...