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值。
posted @ 2020-08-04 20:20  bigtree2pingping  阅读(377)  评论(0编辑  收藏  举报