Linux内置字符串处理(转载)
时间:2010-11-15 来源:Fancy
简单表达式 |
解释 |
实例 |
Left=${right} |
Left= 变量right 的值,与$right 相同 |
right="a";left=${right};echo ${left} a |
Left=${right- DEFAULTSTRING} |
如果right 没有被声明 , 那么就以$DEFAULTSTRING 作为left 的值,否则left=$right |
left=${right-"default"};echo $left $right default
right="";left=${right-"default"};echo $left $right
|
Left=${right:- DEFAULTSTRING} |
如果right 没有被声明,或者其值为空 , 那么就以$DEFAULTSTRING 作left 的值,否则left=$right |
right="";left=${right:-"default"};echo $left $right default |
Left=${right= DEFAULTSTRING} |
如果right 没有被声明 , 那么就以$DEFAULTSTRING 作为left 的值, 同时right=$DEFAULTSTRING, 否则left=$right |
right="";left=${right="default"};echo $left $right
|
Left=${right:= DEFAULTSTRING} |
如果right 没有被声明,或者其值为空 , 那么就以$DEFAULTSTRING 作为left 的值, 同时right=$DEFAULTSTRING, 否则left=$right |
right="";left=${right:="default"};echo $left $right default default |
二、字符串常用操作(长度,读取,替换)
字符表达式 |
解释 |
实例 |
${#string} |
获取$string 字符长度 |
test="12345";echo ${#test} 5 |
${string:pos} |
在$string 中,从位置$pos 开始提取串(pos 从0 开始) |
test="12345";echo ${test:1} 2345 |
${string:pos:length} |
在$string 中,从位置$pos 开始提取长度为$length 的串 |
test="12345";echo ${test:1:2} 23 |
${string#substring} |
从变量$string 左边, 删除最短匹配$substring的串 |
test="123453467";echo ${test#*3} 453467 |
${string##substring} |
从变量$string 左边, 删除最长匹配$substring的串 |
test="123453467";echo ${test##*3} 467 |
${string%substring} |
从变量$string 的右边开始, 删除最短匹配$substring 的串 |
test="123453467";echo ${test%3*} 12345 |
${string%%substring} |
从变量$string 的右边开始, 删除最长匹配$substring 的串 |
test="123453467";echo ${test%%3*} 12 |
${string/substring/replacement} |
使用$replacement, 来代替第一个匹配的$substring |
test="123453467";echo ${test/3/9} 129 453467 |
${string//substring/replacement} |
使用$replacement, 代替所有匹配 的$substring |
test="123453467";echo ${test//3/9} 129 459 467 |
${string/#substring/replacement} |
如果$string 的前缀 匹配 $substring, 那么就用$replacement来代替$substring |
test="123123467";echo ${test/#123/9} 9 123467 |
${string/%substring/replacement} |
如果$string 的后缀 匹配$substring, 那么就用$replacement来代替$substring |
test="123123467";echo ${test/%467/9} 1231239 |