shell中字符串截取有8种方法:
现在假设有变量 val=http://Facebook.com
1. # 号截取,删除左边字符,保留右边字符,具体看下图:
执行结果图:
echo ${val#*//}
其中 val 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符,即删除 http://
2.## 号截取,删除左边字符,保留右边字符,如图:
执行结果:
echo ${val##*k} ,##*k 表示从左边开始删除最后(最右边)一个 字符k及左边的所有字符,即删除 http://Facebook ,结果是 .com
3.%号截取,删除右边字符,保留左边字符
执行结果:
echo ${val%/* }, %/* 表示从右边开始,删除第一个 / 号及右边的字符
4 . %% 号截取,删除右边字符,保留左边字符
执行结果:
echo ${val%%/* } , %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
5.从左边第几个字符开始,要截取的字符个数,如图:
执行结果:
echo ${val:0:7} ,其中 0 表示从左边第一个字符开始,7 表示要截取字符的总个数。
6 . 从左边第几个字符开始,一直到结束.
执行结果:
echo ${val:5},其中的5表示截取从左边第6个字符开始到结束的字符串。
7 . 从右到左的第几个字符开始,截取从左到右的多少个字符
执行结果:
echo ${val:0-8:4} ,其中 0-8 表示从最右边算起第8个字符开始,4 表示要截取的字符个数。
8 . 从右边第几个字符开始,一直到结束.
执行结果:
echo ${val:0-8},表示从右边第8个字符开始,一直截取到结束。