shell字符串操作-创新互联
一、环境
成都做网站、成都网站设计介绍好的网站是理念、设计和技术的结合。创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。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} testca
4.字符串拆分
类似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} #从右侧删除最长匹配 te
IFS 通过设置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}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:shell字符串操作-创新互联
文章起源:http://scyanting.com/article/gcdjg.html