您的位置:首页 > 运维架构 > Linux

Linux内置字符串处理(转载)

2010-11-15 22:23 176 查看
一、字符串条件判断

简单表达式

解释

实例

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: