网站开发技术

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

您尚未登录。

#1 2015-01-08 14:53:58

admin
管理员

linux 字符串 字符串分割获取

比如一个字符串 "a b c,1,2" 

这个字符串有abc直接用空格隔开, c12 用逗号隔开。 现在活得用逗号隔开的。

str="a b c,1,2"

第一: 用cut

[root@qd ~]# echo $str | cut -f2 -d','
1
[root@qd ~]# echo $str | cut -f3 -d','
2

f2 表示活得第二个域, -d','表示用 分号作为域的分隔符。


第二: 用awk ,这个是本身就是把一行分成一个一域进行处理的。

[root@qd ~]# echo $str | awk -F , '{print $2}'
1
[root@qd ~]# echo $str | awk -F , '{print $3}'
2

直接获得第二个和第三个域就可以。  -F 域的分隔符。


第三种: 用sed 。 sed 常用来进行行处理

[root@qd ~]# echo $str | sed 's/.*,\(.*\),\(.*\)/\1/'
1
[root@qd ~]# echo $str | sed 's/.*,\(.*\),\(.*\)/\2/'
2

这个对这个表达式解释一下

s 表示替换 

s/a/b/ 把a替换成b

这个例子中a是 .*,\(.*\),\(.*\)  

b是 \1

a中有两个括号, 子匹配。 \1 表示第一个子配置, \2 第二个 。

\0 就表示这个本身了。


ipbbs.net

离线

页脚

Powered by FluxBB