位置:海鸟网 > IT > linux/Unix >

Linux内置字符串处理

简单表达式

解释

实例

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