一、环境

创新互联建站长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为嫩江企业提供专业的网站制作、做网站,嫩江网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
ubuntu14.04 x86_64
二、字符串操作
1.获得字符串长度
类似C语言中的strlen()
${#variable_name}
eg:
$name=zhangsan
$echo ${#name}
8
$expr length variable_name
note: variable_name不能为空
$ expr length $name $ 8
2.字符串提取
类似java中的substring()
${variable_name:start_index:length} 从左到右,从第start_index(0)开始,length长的子串
${variable_name:0-start_pos:length} 从结尾倒起数第start_pos开始,length长的子串
eg:
$echo ${name:0:4}
zhang
$echo ${name:2} #从第二个位置开始,到结束
angsan
$echo ${name:0-4:2}
gs
$echo ${name:0-4} #从倒数第4开始,到结束
gsan
$3.字符串截取
从左到右删除
${variable_name#*separator} separator是你要分隔的字符,到第一个separator的位置
${variable#pattern} 检查是否以指定的pattern结束,如果是,则使用variable的内容并从其左侧删除pattern所能够匹配到的最短结果。
pattern:
* 匹配零个或多个字符
? 匹配任意单个字符
[...] 匹配指定字符组中任意单个字符
[!...] 匹配不在字符组中的任意单个字符
类似C语言中的strchr()
eg:
$name=zhangsan-lisi-wangwu-baidi
$echo ${name#*-}
lisi-wangwu-baidi
$
$var=testcase
$echo ${var#?e} #从左侧删除最短的匹配
scase
$echo ${var#*s}
tcase${variable_name##*separator} 到最后一个separator的位置
${variable##pattern} 检查是否以指定的pattern结束,如果是,则使用variable的内容并从其左侧删除pattern所能够匹配到的最长结果(贪吃)。
类似C语言中的rindex()
eg:
$echo ${name##*-}
baidi
$
$var=testcase
$echo ${var##*s} #从左侧删除最长的匹配
e从右到左删除
${variable_name%separator*} ${variable%pattern}
${variable_name%%separator*} ${variable%%pattern}
eg:
$echo ${name%-*}
zhangsan-lisi-wangwu
$echo ${name%%-*}
zhangsan
$
$var=testcase
$echo ${var%e} #从右侧删除最短匹配
testcas
$echo ${var%s*e}
testca4.字符串拆分
类似C语言的strtok()
${variable_name//ch/ch_replace} 将variable_name中的字符ch替换为ch_replace字符
eg:
$name=zhangsan-lisi-wangwu-baidi
$name=${name//-/,} #将横杠替换为逗号
$echo ${name}
zhangsan,lisi,wangwu,baidi
$name={name//,/ } #将逗号替换为空格
$echo ${name}
zhangsan lisi wangwu baidi #可用于后续的for循环
$
$var=tescase
$echo ${var%%s*e} #从右侧删除最长匹配
teIFS 通过设置IFS的值,进行拆分
eg:
$test=aaa,bbb,ccc,ddd,eee
$arr=${test}
$echo ${arr}
aaa,bbb,ccc,ddd,eee
$OLD_IFS=$IFS
$IFS=,
$arr2=${test}
$echo ${arr2}
aaa bbb ccc ddd eee
$IFS=${OLD_IFS}
网站标题:shell字符串操作
网站网址:http://www.jxjierui.cn/article/ipeheg.html


咨询
建站咨询
