Chinaunix

标题: awk中-F分隔符的写法 [打印本页]

作者: hope1234567hope    时间: 2016-01-26 12:46
标题: awk中-F分隔符的写法
[root@iamtora ~]# cat d.txt
Jul  3 xxx fail xxxxxx
Inquiry Data:             9QJ3EBPVST31000340NS                            SN06
hello
Sep10 xxx
Sep     10 yyy fail

[root@iamtora ~]# awk -F'[: |  ]+' '{print $2}'  d.txt
3
Data

xxx
10

[root@iamtora ~]# awk -F':[ ]+|[ ][ ]+' '{print $2}'  d.txt
3 xxx fail xxxxxx
9QJ3EBPVST31000340NS


10 yyy fail

初学awk,在分隔符的时候,看例子中基本上都是放在[]中。能讲讲-F'[: |  ]+' 和-F':[ ]+|[ ][ ]+'的意思么? 空格是怎么处理的?
作者: ydzcjj    时间: 2016-01-26 14:27
-F'[: |  ]+'    这个应该是以 [: ] ←冒号空格  或者是 [  ] ←两个空格 存在1个或1个以上时为分隔符

-F':[ ]+|[ ][ ]+'    这个是以 一个冒号+1个或1个以上的空格   或者   两个或两个以上的空格 为分隔符吧

然后再打印第二列
第一个你的d.txt   的第三行hello后面没有空格就匹配不了
第二个同理  第三行和第四行都没有匹配项所以都是空
作者: hope1234567hope    时间: 2016-01-26 15:54
谢谢!很感谢!我在研究下!有问题再问你




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2