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值。