shell截取字符串方法

转载:https://www.cnblogs.com/kevingrace/p/8868262.html

2.1) # 最小限度从前面截取word
语法:${parameter#*word} , 即截取 "第一个分隔符word及其之前的字符全部删掉"后的字符

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@kevin~]# cat test.sh
#!/bin/bash
str="http://www.kevin.com/shibo/anhuigrace"
echo "string: [${str}]"
 
#分割符为'/'
substr=${str#*/}
echo "substr: [${substr}]"
 
执行结果为:
[root@kevin~]# sh test.sh
string: [http://www.kevin.com/shibo/anhuigrace]
substr: [/www.kevin.com/shibo/anhuigrace]

2.2)## 最大限度从前面截取word
语法:${parameter##*word},即截取 "最后一个分隔符word及其之前的字符全部删掉"后的字符

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@kevin~]# cat test.sh 
#!/bin/bash
str="http://www.kevin.com/shibo/anhuigrace"
echo "string: [${str}]"
 
#分割符为'/'
substr=${str##*/}
echo "substr : [${substr}]"
 
执行结果为:
[root@kevin~]# sh test.sh 
string: [http://www.kevin.com/shibo/anhuigrace]
substr : [anhuigrace]
 
 

3.1)% 最小限度从后面截取word
语法:${parameter%word*},即截取 "最后一个分隔符word及其之后的字符全部删掉"后的字符

1
2
3
4
5
6
7
8
9
10
11
12
[root@kevin~]# cat test.sh
#!/bin/bash
str="http://www.kevin.com/shibo/anhuigrace"
echo "string: [${str}]"
 
substr=${str%/*}
echo "substr : [${substr}]"
 
执行结果为:
[root@kevin~]# sh test.sh
string: [http://www.kevin.com/shibo/anhuigrace]
substr : [http://www.kevin.com/shibo]

3.2)%% 最大限度从后面截取word
语法:${parameter%%*word},即截取 "第一个分隔符word及其之后的字符全部删掉"后的字符

1
2
3
4
5
6
7
8
9
10
11
12
[root@kevin~]# cat test.sh
#!/bin/bash
str="http://www.kevin.com/shibo/anhuigrace"
echo "string: [${str}]"
 
substr=${str%%/*}
echo "substr : [${substr}]"
 
执行结果为:
[root@kevin~]# sh test.sh
string: [http://www.kevin.com/shibo/anhuigrace]
substr : [http:]
posted on 2021-04-06 20:30  该用户很懒  阅读(370)  评论(0编辑  收藏  举报