网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-12-24 11:18:11

admin
管理员

shell 字符串处理总结

  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

离线

页脚

Powered by FluxBB