TSVからCSVへの熱分割

TSVからCSVへの熱分割

次の形式の2つの列を持つTSVファイルがあります。

id1\tcol1,col2,col3
id2\tcol4,col5

2列目を1列目と組み合わせて出力したいです。

id1,col1
id1,col2
id1,col3
id2,col4
id2,col5

2つの質問があります。

  • TSVの2番目の列にカンマで区切られた値の固定されていない数
  • ファイルが大きすぎてメモリにロードできません。

カンマで区切られた値はきれいでなく、囲みを使用しません,"だから私たちはカンマごとに分けました。

ベストアンサー1

awkを使用してください。

$ awk -F'[\t,]' -v OFS=',' '{for (i=2; i<=NF; i++) print $1, $i}' file
id1,col1
id1,col2
id1,col3
id2,col4
id2,col5

上記は、最初の列に,を含めることはできず、2番目の列にはタブを含めることができないとします。どちらもデータ型に関する質問の例と説明で正しいように見えるため、データに適している必要があります。

おすすめ記事