天天看点

awk内建函数split的使用

data:

a|b|c,d1,e1,f3|d|
e|f|g1,g1|h|
           

期望结果:

a|b|f3|d|
a|b|c|d|
a|b|d1|d|
a|b|e1|d|
e|f|g1|h|
e|f|g1|h|
           

View Code

awk -F '|' 'BEGIN{OFS="|"} {split($3,a,",");for(i=1;i<=length(a);i++) {$3=a[i];print $0}}' data
           

注:

awk的内建函数split,可以把一个字符串分隔为单词并存储在数组中

可以自己定义域分隔符或者使用当前FS(域分隔符)的值

如果不设置,awk就默认使用当前FS值

格式:

split(string, array, field separator)
 split(string, array)     # 第三个参数没有提供,awk就默认使用当前FS值。