shell 字符串截取操作

字符串操作(长度,读取,替换)

{#string} $string的长度 
    
${string:position} 在$string中, 从位置$position开始提取子串  
${string:position:length} 在$string中, 从位置$position开始提取长度为$length的子串  
    
${string#substring} 从变量$string的开头, 删除最短匹配$substring的子串  
${string##substring} 从变量$string的开头, 删除最长匹配$substring的子串  
${string%substring} 从变量$string的结尾, 删除最短匹配$substring的子串  
${string%%substring} 从变量$string的结尾, 删除最长匹配$substring的子串  
    
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring  
${string//substring/replacement} 使用$replacement, 代替所有匹配的$substring  
${string/#substring/replacement} 如果$string的前缀匹配$substring, 那么就用$replacement来代替匹配到的$substring 
${string/%substring/replacement} 如果$string的后缀匹配$substring, 那么就用$replacement来代替匹配到的$substring 

例如:

假设有变量 var=http://www.aaa.com/123.htm.

1. # 号截取,删除左边字符,保留右边字符。

1

echo ${var#*//}

 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

1

echo ${var##*/}

 

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/

结果是 123.htm

3. %号截取,删除右边字符,保留左边字符

1

echo ${var%/*}

 

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.aaa.com

4. %% 号截取,删除右边字符,保留左边字符

1

echo ${var%%/*}

 %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:

5. 从左边第几个字符开始,及字符的个数

1

echo ${var:0:5}

 

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:

6. 从左边第几个字符开始,一直到结束。

1

echo ${var:7}

 

其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm

7. 从右边第几个字符开始,及字符的个数

1

echo ${var:0-7:3}

 

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123

8. 从右边第几个字符开始,一直到结束。

1

echo ${var:0-7}

 

表示从右边第七个字符开始,一直到结束。
结果是:123.htm

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值