页次: 1
获取长度
[root@ippbs ~]# str='12345678' [root@ippbs ~]# echo ${#str} 8 [root@ippbs ~]# expr length $str 8 [root@ippbs ~]# expr length "$str" # r如果有空格要加上双引号 8
2. 查找位置 , 如果没找到返回 0
[root@ippbs ~]# str='abcdefg' [root@ippbs ~]# d='d' [root@ippbs ~]# expr index $str $d 4 [root@ippbs ~]# expr index $str 'g' 7 [root@ippbs ~]# expr index $str 'z' 0
3. expr match 找到了返回 值, 没有返回 0
[root@ippbs ~]# expr match 'abcd' 'ab' 2 [root@ippbs ~]# expr match 'abcd' 'bc' 0
4. 获得子串 {str:position:length} , 如果是负数 冒号后面要有空格 , 取的是后几个
[root@ippbs ~]# str='123456789' [root@ippbs ~]# echo ${str:0:2} 12 [root@ippbs ~]# echo ${str:1:2} 23 [root@ippbs ~]# echo ${str: -2} 89 [root@ippbs ~]# echo ${str: -4} 6789 [root@ippbs ~]# echo ${str:0} 123456789 [root@ippbs ~]# echo ${str:5} 6789 [root@ippbs ~]# echo ${str:(-6)} 456789
获得字串换可以 , 这个是从 1 开始的
[root@ippbs ~]# expr substr "$str" 1 3 123
5. 使用正则获得字串
[root@ippbs ~]# str='abc123' [root@ippbs ~]# expr match "$str" '\([a-z]*\)' abc
6. 删除字串
从前向后删除
[root@ippbs ~]# str='abcabc123' [root@ippbs ~]# echo ${str#a*c} abc123 [root@ippbs ~]# echo ${str##a*c} 123
从后面开始
[root@ippbs ~]# str='123abcabc' [root@ippbs ~]# echo ${str%a*c} 123abc [root@ippbs ~]# echo ${str%%a*c} 123
7. 字符串替换, 也可以用于删除
[root@ippbs ~]# str='abc123abc123' [root@ippbs ~]# echo ${str/abc/efg} efg123abc123 [root@ippbs ~]# echo ${str//abc/efg} efg123efg123 [root@ippbs ~]# [root@ippbs ~]# echo ${str//abc/} 123123
ipbbs.net
离线
页次: 1