awk指定多个分隔符

  有的时候我们用awk截取字段,有好多不同的符号,我们需要截取好多次,指定多个分隔符,我们只截取一次可能就会得到我们想要的字段。

一、指定多个分隔符

[root@cxm ~]# cat 123 
1111111111*222222222222222|33333333333#4444444444444&5555555555555555

根据上边的文件,我们可以以* |#& 为分隔符

[root@cxm ~]# awk -F '[*|#&]' '{print $3}' 123 
33333333333
[root@cxm ~]# awk -F '[*|#&]' '{print $4}' 123 
4444444444444

二、连续的分隔符为一个分隔符

[root@cxm ~]# cat 222 
111111*****2222222|||||||3333333########444444444&&&&&&&&&55555555

在[]后边加个+(加号)

[root@cxm ~]# awk -F '[*|#&]+' '{print $3}' 222 
3333333

默认连续不同的分隔符也会成为一个分隔符

[root@cxm ~]# cat 333 
111111*|2222222|||||||3333333########444444444&&&&&&&&&55555555
[root@cxm ~]# awk -F '[*|#&]+' '{print $3}' 333 
3333333

*和|变成了一个分隔符

你可能感兴趣的:(awk指定多个分隔符)