Возьмите данные из одного поля и вставьте в новый ряд

У меня есть ЦВ, как показано ниже:

1 2 3 4,5,6 a 1 2 3 b 2 7 9 1,2 c 0 7 9 1,6,7,7 d 

Мне нужно извлечь 4-й столбец, взять значения, разделенные запятыми, и поместить их в собственную строку, предоставив им собственную строку, если в столбце содержится более 1 значения. например:

 1 2 3 4 a 5 6 7 1 2 3 b 2 7 9 1 c 2 0 7 9 1 d 6 7 7 

Я старался:

 awk -F'\t' '{split($4,a,",");for(i in a)if(!seen[a[i]]++)print a[i]}' /report/temp2.tsv > /report/temp3.tsv 

Я скучаю по остальному, хотя …

Awk решение:

 awk 'NF == 4{ $4 = OFS $4 } NF == 5 && $4 ~ /,/{ len = split($4, a, ","); sub(/,.+/, "", $4); print $0; for(i = 2; i <= len; i++) print OFS OFS OFS a[i]; next }1' OFS='\t' file 

Выход:

 1 2 3 4 a 5 6 1 2 3 b 2 7 9 1 c 2 0 7 9 1 d 6 7 7