2016-11-30 4 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 строки. Вы не говорите, так кто знает? Он принимает конкретное преобразование, но другие могут быть возможны, т. Е. Предполагается, что третий столбец на выходе представляет собой нулевой индекс столбца предыдущего элемента во входных данных, не считая первый столбец.

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 
Смежные вопросы