假设变量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表示;
原文链接:https://www.f2er.com/bash/392853.html