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

shell之字符串的处理

2017-08-18 17:30 351 查看
shell脚本中对字符串的处理

1、${#变量名}

作用:返回字符串的长度
# foo="this is a test"
# echo ${#foo} //返回字符串foo的长度
14

2、${变量名:offset:length}

作用:截取字符串,length指定截取的长度,也可以不写;字符串的第一个字符的索引值为0
# foo="abcdefg"
# echo ${foo:3:2} //从下标为3的字符开始截取,共截取2个
de
# echo ${foo:3} //从下标为3的字符开始截取到最后的字符
defg

3、${变量名#pattern} ${变量名##parttern}

pattern:模式,通配符表达式
作用:清除字符串中符合pattern的字符

# foo="file.txt.zip"
# echo ${foo#*.} //一个#号代表按照最短匹配清除
txt.zip
# echo ${foo##*.} //2个#号代表按照最长匹配清除
zip

4、${变量名%pattern} ${变量名%%parttern}
pattern:模式,通配符表达式
作用:清除字符串中符合pattern的字符,从字符串最后匹配
# echo $foo
file.txt.zip
# echo ${foo%.*} //1个%代表按照最短匹配
file.txt
# echo ${foo%%.*} //2个%%代表按照最长匹配
file

5、字符串替换操作

${变量名称/old/new}

[root@localhost ~]# foo="mp3.txt.txt.mp3.avi"
[root@localhost ~]#
[root@localhost ~]# echo ${foo/txt/TXT}
mp3.TXT.txt.mp3.avi
[root@localhost ~]#
[root@localhost ~]# echo ${foo//txt/TXT}
mp3.TXT.TXT.mp3.avi

[root@localhost ~]# foo="txt.mp3.txt"
[root@localhost ~]#
[root@localhost ~]# echo ${foo/#txt/TXT}
TXT.mp3.txt
[root@localhost ~]# echo ${foo/%txt/TXT}
txt.mp3.TXT

6、实现大小写字母的转换

# foo="ABde"
# echo ${foo,,} //将字符串foo全部转换成小写
abde
# echo ${foo,} //将字符串foo的第1个字符转换成小写
aBde
# echo ${foo^} //将字符串foo的第1个字符转换成大写
ABde
# echo ${foo^^} //将字符串foo全部转换为大写
ABDE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell之字符串