页次: 1
比如一个字符串 "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
离线
页次: 1