これは私の1.fileです(区切り記号は「\ t」です)。
ot1 a a,b,c,d,e
ot2 b b,c,q
ot3 c c,f,g
ot4 e a,g,e
2.fileをインポートしたい(区切り記号は「\ t」です)。
ot1 a a
ot1 a b
ot1 a c
ot1 a d
ot1 a e
ot2 b b
ot2 b c
ot2 b q
ot3 c c
ot3 c f
ot3 c g
ot4 e a
ot4 e g
ot4 e e
まず、"sed -i "s/,/\n/g"を試してみましたが、次に何をすべきかわかりません。助けてくれてありがとう。
ベストアンサー1
次の操作が実行されます。
awk -F\\t 'BEGIN {OFS=FS} {n=split($3,aa,",");for (i=1;i<=n;i++) {$3=aa[i]; printf "%s\n" $0 }}'
最初のタブ区切り文字にはダブルエスケープが必要です。
次に、3番目のタグを分割し、分割配列の要素数を取得します。
次に、ループの3番目のタグを分割要素に置き換えて印刷します。