2016-11-30 7 views
-5

Scalaのようなフラット化

foo,1,2,3 
bar,2,3,4 
too,6,2,3 

は、コマンドラインからこれを生産することが可能です:

foo,1,0 
foo,2,1 
foo,3,2 
bar,2,0 
bar,3,1 
bar,4,2 
too,6,0 
too,2,1 
too,3,2 
+4

あなたは何を試してみましたか、何がうまくいかなかったか、具体的な問題は何ですか? http://stackoverflow.com/help/how-to-askを参照してください。 – laughedelic

答えて

0

に一つの形式でデータを変換する方法を尋ねたとき別の形式のデータでは、変換が正確に何で構成されているかを非常に明確にする方が一般に良いです。この場合は明らかですが、誰が知っていますか?

この -

awk -F, 'BEGIN{OFS=","}{print $1,$2,0;print $1,$3,1;print $1,$4,2;}' ORIGINAL_FILE.dat 

- あなたが表示され、変換を行います。あなたの入力データは常に正確に4行であると仮定します。あなたは言わないので、誰が知っていますか?これは特定の変換を前提としていますが、他の変換も可能です。つまり、出力の3番目の列は、最初の列をカウントせずに、入力データの前の項目のゼロインデックス番号です。

0

awkレスキュー!

$ awk 'BEGIN{FS=OFS=","} 
      {for(i=2;i<=NF;i++) print $1,$i,c[$1]++}' file 

foo,1,0 
foo,2,1 
foo,3,2 
bar,2,0 
bar,3,1 
bar,4,2 
too,6,0 
too,2,1 
too,3,2 
関連する問題