shell中截取字符串的方法很多
1 2 3 4 5 6 7 8 |
|
格式 | 说明 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
--------------------------------------------------------------------------------
下面用几个例子展示一下:
1) 获得字符串的长度
语法:
1 |
|
示例代码:
1 2 3 4 5 |
|
执行结果:
1 2 |
|
--------------------------------------------------------------------------------
2) 使用 # 和 ## 获取尾部子字符串
2.1) # 最小限度从前面截取word
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|
2.2) ## 最大限度从前面截取word
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|
--------------------------------------------------------------------------------
3) 使用 % 和 %% 获取头部子字符串
3.1) % 最小限度从后面截取word
语法:
1 |
|
示例代码:
1 2 3 4 5 |
|
执行结果:
1 2 |
|
3.2) %% 最大限度从后面截取word
语法:
1 |
|
示例代码:
1 2 3 4 5 |
|
执行结果:
1 2 |
|
--------------------------------------------------------------------------------
4)使用 ${var:} 模式获取子字符串
4.1) 指定从左边第几个字符开始以及子串中字符的个数
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|
4.2) 从左边第几个字符开始一直到结束
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|
4.3) 从右边第几个字符开始以及字符的个数
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|
4.4) 从右边第几个字符开始一直到结束
语法:
1 |
|
示例代码:
1 2 3 4 5 6 |
|
执行结果:
1 2 |
|